寻找一种方法来阻止所有的动画片段

时间:2016-11-10 09:48:51

标签: actionscript-3 flash

我有一个项目,每个项目都会在特定时间播放很多符号。 我想要一个命令来阻止所有符号的播放,而不必实际添加mc.stop();对于每一个人。

我试过了通用的stop();但那不起作用 无论如何都有人知道这很容易吗?

2 个答案:

答案 0 :(得分:3)

您必须搜索容器的所有现有子容器,然后检查该Movieclip是否会停止其时间线

例如使用以下函数调用movieClipStopAll(this)

function movieClipStopChilds(container:DisplayObjectContainer):void {
     for (var i:uint = 0; i < container.numChildren; i++)
        if (container.getChildAt(i) is MovieClip)
            (container.getChildAt(i) as MovieClip).stop();
}

编辑:

以下功能也会停止内部儿童动画片段

function movieClipStopAll(container:DisplayObjectContainer):void {
     for (var i:uint = 0; i < container.numChildren; i++)
        if (container.getChildAt(i) is MovieClip) {
            (container.getChildAt(i) as MovieClip).stop();
            movieClipStopAll(container.getChildAt(i));
        }
}

答案 1 :(得分:2)

如果您使用的是Flash Player 11.8 / AIR 3.8或更高版本,则可以使用内置 stopAllMovieClips方法。

  

递归停止以此对象为根的所有MovieClip的时间轴执行。

用法:

commonParent.stopAllMovieClips();

其中commonParent是包含您想要停止的所有MovieClip的最顶层对象。如果你真的想要阻止一切,那么这可能是mainTimeline或舞台。

如果您只想停止父母的直接子女,请使用payam sbr答案第一部分中的解决方案。