如何使用 as3 同时访问所有动画片段(以及动画片段中的动画片段,...)?
How to access all movieclips (and movieclips inside a movieclips,...) at a sametime with as3?
我正在使用 Adobe Animate(或 Adobe Flash Professional)并且我经常使用 as3 浏览时间轴。
当舞台达到精确帧时,我想重置所有动画片段(和动画片段中的动画片段)。
喜欢:
if (this.currentFrame == 120)
{
allMovieClips.gotoAndPlay(1);
}
我正在考虑访问库中的所有电影片段,但我不知道如何做。
有什么办法吗?
您无法访问图书馆中的内容,因为图书馆是一个 design-time 概念。如果要重置当前附加到舞台的所有 MovieClip 实例,请执行以下操作:
import flash.display.Sprite;
import flash.display.MovieClip;
// Start resetting them from the topmost timeline.
reset(root as Sprite);
function reset(target:Sprite):void
{
// First, browse all the children of the target.
for (var i:int = 0; i < target.numChildren; i++)
{
var aChild:Sprite = target.getChildAt(i) as Sprite;
// If a child is a container then go recursive on it.
if (aChild) reset(aChild);
}
// Second, if the target is not only the container
// of other things but a MovieClip itself then rewind it.
if (target is MovieClip)
(target as MovieClip).gotoAndPlay(1);
}
我正在使用 Adobe Animate(或 Adobe Flash Professional)并且我经常使用 as3 浏览时间轴。 当舞台达到精确帧时,我想重置所有动画片段(和动画片段中的动画片段)。 喜欢:
if (this.currentFrame == 120)
{
allMovieClips.gotoAndPlay(1);
}
我正在考虑访问库中的所有电影片段,但我不知道如何做。 有什么办法吗?
您无法访问图书馆中的内容,因为图书馆是一个 design-time 概念。如果要重置当前附加到舞台的所有 MovieClip 实例,请执行以下操作:
import flash.display.Sprite;
import flash.display.MovieClip;
// Start resetting them from the topmost timeline.
reset(root as Sprite);
function reset(target:Sprite):void
{
// First, browse all the children of the target.
for (var i:int = 0; i < target.numChildren; i++)
{
var aChild:Sprite = target.getChildAt(i) as Sprite;
// If a child is a container then go recursive on it.
if (aChild) reset(aChild);
}
// Second, if the target is not only the container
// of other things but a MovieClip itself then rewind it.
if (target is MovieClip)
(target as MovieClip).gotoAndPlay(1);
}