在flash中同时停止同一个动画片段的多个对象

时间:2014-01-26 11:21:50

标签: actionscript-3 flash animation movieclip

在一些特定的时差之后,我一遍又一遍地生成同一个动画片段的孩子。在任何情况下,我都要求舞台上的所有动画片段立即暂停,并在另一个片段后再次播放。有关如何做到这一点的任何建议?我正在使用flash专业CS5.5和actionscript 3.0。

2 个答案:

答案 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 ) );
        }
      }
    }
  }
}