在一些特定的时差之后,我一遍又一遍地生成同一个动画片段的孩子。在任何情况下,我都要求舞台上的所有动画片段立即暂停,并在另一个片段后再次播放。有关如何做到这一点的任何建议?我正在使用flash专业CS5.5和actionscript 3.0。
答案 0 :(得分:0)
每次生成新子项时,将其推送到数组:
var myArray:Array = new Array();
function makeChildren() {
var newChild:MovieClip = new originalMC();
myArray.push(newChild);
addChild(newChild);
}
然后,您可以随意访问所有生成的动画片段。 当你需要暂停或全部播放时,只需为每个循环运行一次:
for each(var myVar in myArray) {
myVar.pause(); // or myVar.play();
}
听起来像你在找什么?
答案 1 :(得分:0)
我无法将所有对象保存在同一个数组中,您可以递归扫描显示列表并检查每个对象:
function lookRecursively( target : DisplayObjectContainer ) : void
{
for ( var i:int = 0, l:int = target.numChildren; i < l; i++ ) {
var child:DisplayObject = target.getChildAt(i);
if ( child is DisplayObjectContainer ) {
if ( DisplayObjectContainer(child).numChildren > 0 ) {
if ( child is SOME_OBJECT_CLASS_HERE ) {
// do what you gotta do here...
} else {
lookRecursively( DisplayObjectContainer ( child ) );
}
}
}
}
}