AS3 - MovieClip数组:逐个播放每部电影

时间:2013-06-10 18:39:56

标签: arrays actionscript-3 movieclip

AS3新手在这里......非常困惑,请善待;)

我有一个MovieClip(rozette),其中包含7个MovieClip实例(圆圈)。 circle包含一个动画,我想连续在rozette中播放它的每个实例。

问题 - 我是否需要使用数组?使用eventListener是最好的方法吗?如果是这样,我如何为数组中的每个项创建一个eventlistener?我在听什么样的活动?

非常感谢。吉

2 个答案:

答案 0 :(得分:0)

您可以在此处看到一些选项作为答案:

Flash AS3 - Wait for MovieClip to complete

基本上我认为你想拥有一个数组和一个你正在使用的计数器,每次调用“playNext”函数时,你应该增加计数器并从数组中拉出下一个影片剪辑。这意味着数组中元素的顺序将决定它们的顺序。例如:

private var myArray:Array = [mc1,mc2,mc3]; //list all the movieclip instance names here
private var counter:Number = 0;  //start off on the first element, arrays in AS3 start at 0

//Play the next clip
private function playNext():void {
    //Check that we're not at the end of the list, if so just return/stop
    if(counter>myArray.length-1)
        return;

    //grab the next clip
    var curClip:MovieClip = myArray[counter] as MovieClip;

    //increment the counter for next time
    counter++;

    //when the last frame gets hit call this function again
    curClip.addFrameScript(curClip.totalFrames-1, playNext);

    //play the clip
    curClip.play();
}

从你的Main类的构造函数中,你需要调用一次playNext()来使事情滚动。

答案 1 :(得分:0)

import com .greensock.*;
import com. greensock.easing.*;	
var s1:b1=new b1();
var s2:b2=new b2();
var s3:b3=new b3();
var r1:Array = new Array();
r1.push(s1);
r1.push(s2);
r1.push(s3);
function ff (){
var i = 0;
while (i < r1.length) {

	r1[i].visible=false
	r1[0].visible=true
	addChild(r1[i]);
    i++;
}
TweenMax.staggerTo(r1, 0.4, {visible:true},0.2);
}
bb.addEventListener(MouseEvent.CLICK,cliki4x);	
function cliki4x(e:Event):void{
	ff ();	
}