寻找停止所有影片剪辑的方法

Looking for a way to stop ALL movieclips

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

我试过通用的 stop();但这不起作用 无论如何,有人知道如何轻松做到这一点吗?

您必须搜索容器的所有现有子项,然后检查 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));
        }
}

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

Recursively stops the timeline execution of all MovieClips rooted at this object.

用法:

commonParent.stopAllMovieClips();

其中 commonParent 是最顶层的对象,它包含您要停止的所有 MovieClip。如果你真的想停止一切,这可能是主要时间线或阶段。

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