Actionscript 3 如何在AS3中停止一个movieclip中的所有子movieclip?

Actionscript 3 如何在AS3中停止一个movieclip中的所有子movieclip?,actionscript-3,flash,movieclip,Actionscript 3,Flash,Movieclip,我有一个电影唇,是游戏中的一个角色。在这个movieclips里面有几个movieclips包含有动画的肢体。那么,有没有人对如何进入和停止有什么建议(1);在角色内部的所有电影嘴唇上,而不必手动调用每个肢体对象 角色movieclip在4帧上总共包含20个movieclip,因此我只想停止角色内的所有movieclip。如果我理解正确(即:停止另一个movieclip内的所有movieclip),这应该可以: function stopAllClips(mc:MovieClip):void {

我有一个电影唇,是游戏中的一个角色。在这个movieclips里面有几个movieclips包含有动画的肢体。那么,有没有人对如何进入和停止有什么建议(1);在角色内部的所有电影嘴唇上,而不必手动调用每个肢体对象


角色movieclip在4帧上总共包含20个movieclip,因此我只想停止角色内的所有movieclip。

如果我理解正确(即:停止另一个movieclip内的所有movieclip),这应该可以:

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);
    }
}
你的电影唇就是这个角色


编辑 从Flash Player 11.8/AIR 3.8开始,所有DisplayObjectContainers都有一个内置方法,名为


请记住,这将递归地停止所有子代和孙辈,与原始答案不同,原始答案只停止直系子代。

如果我理解正确(即:停止另一个movieclip中的所有movieclip),这应该可以:

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);
    }
}
你的电影唇就是这个角色


编辑 从Flash Player 11.8/AIR 3.8开始,所有DisplayObjectContainers都有一个内置方法,名为

请记住,这将递归地停止所有的子女和孙辈,不像最初的答案只停止直系子女。

我认为最简单的方法是:

// 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();
        }
    }
}

编辑 从Flash Player 11.8/AIR 3.8开始,所有DisplayObjectContainers都有一个内置方法,名为

我认为最简单的方法是:

// 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();
        }
    }
}

编辑 从Flash Player 11.8/AIR 3.8开始,所有DisplayObjectContainers都有一个内置方法,名为


这将停止第1级上的所有子级,但可以很容易地选择使用递归来停止所有级别上的所有子级:
函数stopAllClips(mc:MovieClip,recursive:Boolean=false):void{var n:int=mc.numChildren;for(var i:int=0;这是一种工作方式,但是角色内部有一个movieclips没有停止,我得到了这个错误(停止只是一个鼠标点击事件):TypeError:error#1009:无法访问空对象引用的属性或方法看起来像是简单的打字错误-main timeline/stop()处出错-应该是stop(),我假设不是这样,函数名为“stop”,但那只是一个按钮,其他什么都没有。只是不明白为什么每个movieclip都会停止,除了一个.btnStop.addEventListener(MouseEvent.CLICK,stop);函数stop(evt){stopAllClips(mc);}函数stopAllClips(mc:MovieClip):void{var n:int=mc.numChildren;用于(var i:int=0;您是否尝试过使用Georges代码使其递归?可能继续播放的mc是孙子而不是孩子这将停止第1级上的所有子级,但可以很容易地选择使用此递归来停止所有级别上的所有子级:
函数stopAllClips(mc:MovieClip,recursive:Boolean=false):void{var n:int=mc.numChildren;for(var i:int=0;这是一种工作方式,但是角色内部有一个movieclips没有停止,我得到了这个错误(停止只是一个鼠标点击事件):TypeError:error#1009:无法访问空对象引用的属性或方法在佛罗里达州Babyanimasjon_::MainTimeline/stop()看起来像是简单的打字错误-MainTimeline/stop()的错误-应该是stop(),我想不是这样,函数名为“stop”,但那只是一个按钮,其他什么都没有。只是不明白为什么除了一个.btnStop.addEventListener(MouseEvent.CLICK,stop);函数stop(evt){stopAllClips(mc);}函数stopAllClips(mc:MovieClip):void{var n:int=mc.numChildren;for(var i:int=0;idid您是否尝试过Georges代码使其递归?可能继续播放的mc是孙子而不是孩子
myMovieClip.stopAllClips(); // Stop the clip and inner clips
commonParent.stopAllMovieClips();