好吧,长话短说我不接近编译器,但我需要知道我是否可以编写类似
的内容for (currentFrame; currentFrame < totalFrames; currentFrame + 19;){
//do some animation
}
我要做的是拥有一个充满对象的数组,并且每隔19帧,让数组中的下一个对象做一些动画,那么上面这样做是否有效?如果没有,你能告诉我怎么做吗?
提前谢谢你,抱歉这个虚假的问题。
答案 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()
调用构造函数,然后将函数放入类函数中。