寻找停止所有影片剪辑的方法
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
答案第一部分中的解决方案。
我有一个项目有很多符号,每个符号在特定时间播放。 我想要一个命令来停止所有符号的播放而不必实际添加 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
答案第一部分中的解决方案。