我有一个电影短片,是一个游戏中的角色。在此电影剪辑中,有几个电影剪辑包含具有动画的肢体。那么,有没有人有关于如何在角色内部的所有电影剪辑上执行gotoAndStop(1);的建议,而不必手动调用每个肢体对象?
人物电影剪辑在4帧中总共包含20个电影剪辑,所以我只想停止角色内部的所有电影剪辑。
发布于 2013-02-15 22:36:01
如果我没理解错的话(例如:停止另一个电影剪辑中的所有电影片段),这应该是可行的:
function stopAllClips(mc:MovieClip):void
{
var n:int = mc.numChildren;
for (var i:int=0;i<n;i++)
{
var clip:MoviceClip = mc.getChildAt(i) as MovieClip;
if (clip)
clip.gotoAndStop(1);
}
}就这么叫吧:
stopAllClips(yourMovieClip);其中yourMovieClip是字符。
编辑
从Flash player11.8/AIR3.8开始,所有的DisplayObjectContainers都有一个叫做stopAllMovieClips的内置方法。
commonParent.stopAllMovieClips();请记住,这将递归地停止所有子代和孙子代,而不像最初的答案只停止直接的子代。
发布于 2014-05-05 01:29:24
我认为最简单的方法是:
// MovieClip propotype function that stop all running clips (current and inside clips)
MovieClip.prototype.stopAllClips = function():void {
var mc:MovieClip = this;
var n:int = mc.numChildren;
mc.gotoAndStop(1);
for (var i:int=0; i<n; i++) {
var clip:MovieClip = mc.getChildAt(i) as MovieClip;
if (clip) {
clip.gotoAndStop(1);
clip.stopAllClips();
}
}
}所以它是递归的,并且可以从MovieClip本身调用:
myMovieClip.stopAllClips(); // Stop the clip and inner clips编辑
从Flash player11.8/AIR3.8开始,所有的DisplayObjectContainers都有一个叫做stopAllMovieClips的内置方法。
commonParent.stopAllMovieClips();https://stackoverflow.com/questions/14896655
复制相似问题