AS3 - 如果我单击某个按钮,如何为舞台上的所有影片剪辑制作动画

AS3 - How to animate all movie clips in the stage if i click a certain button

您好,我一直在这个很棒的网站上阅读,这就是我想要完成的, 在我正在做的应用程序的这个特定页面上,有电影剪辑(按钮、文本、菜单),现在我想要的是如果我单击这个 "close" 按钮,我希望一切都动画化,例如一个一个地缩小。问题:有没有一种有效编码的好方法,而不是一个一个地编码,例如 menu_mc.gotoAndPlay("out");, text_mc.gotoAndPlay("out"); image.gotoAndPlay("out"); ...类似的东西。抱歉,我对此很陌生,我们将不胜感激。

您可以迭代 DisplayList,然后调用您的方法...

for (var i:int = 0; i < this.numChildren; i++) {
    var obj:* = this.getChildAt(i);
    if (obj is MovieClip) {
        obj.gotoAndPlay("out");
    }
}

或者您可以使用动画库(例如 Greensock)制作动画...

for (var i:int = 0; i < this.numChildren; i++) {
    var obj:* = this.getChildAt(i);
    TweenLite.to(obj, .35, {scaleX:0.5, scaleY:0.5, delay:0.25*i});
}

或者您可以为要设置动画的对象引用 Array;更好的选择(如果您的对象不在同一个容器中)。

var a:Array = [menu_mc, text_mc, image];

for (var i:int = 0; i < a.length; i++) {
    TweenLite.to(a[i], .35, {scaleX:0.5, scaleY:0.5, delay:0.25*i});
}