currentFrame和totalFrame可以在as3中推入for循环吗?

时间:2013-11-30 04:49:41

标签: actionscript-3 loops for-loop

好吧,长话短说我不接近编译器,但我需要知道我是否可以编写类似

的内容
for (currentFrame; currentFrame < totalFrames; currentFrame + 19;){
//do some animation
}

我要做的是拥有一个充满对象的数组,并且每隔19帧,让数组中的下一个对象做一些动画,那么上面这样做是否有效?如果没有,你能告诉我怎么做吗?

提前谢谢你,抱歉这个虚假的问题。

1 个答案:

答案 0 :(得分:1)

您可以使用输入框架侦听器来计算帧数。这也允许您不关心主MC的时间轴(使其成为1帧或使用Sprite)。

var yourArray:Array=[...]; // your array, pre-filled
var nowPlaying:int; // index in the array
var frame:int=0; // the frame counter
this.addEventListener(Event.ENTER_FRAME,animateChildren);
function animateChildren(e:Event):void {
    frame++;
    if (frame==19) {
        frame=0; // reset counter
        nowPlaying++; // next item to call play()
        if (nowPlaying==yourArray.length) nowPlaying=0; // loop the array
        // so the first item plays after last item
        var mc:MovieClip=yourArray[nowPlaying] as MovieClip;
        if (mc) mc.gotoAndPlay(1); // play the MC in question
    }
}

代码可以安全地放入类文件而不是时间轴,只需将变量分别放入类变量中,addEventListener()调用构造函数,然后将函数放入类函数中。