2015-10-08 160 views
1

我在AS3中創建了一個圖像旋轉橫幅,它基本上是FadesIn和FadesOut在連續循環中。我想橫幅循環3次然後停止,我很難在3次循環後停止。那麼我對AS3很新。以下是代碼。請幫忙!!AS3循環動畫

謝謝!

import flash.utils.Timer; 
import flash.events.TimerEvent; 
import fl.transitions.Tween; 
import fl.transitions.easing.*; 

mc1.alpha = 0; 
mc2.alpha = 0; 
mc3.alpha = 0; 
var counter; 

var timer:Timer = new Timer(1000,9); 
timer.addEventListener(TimerEvent.TIMER,timerListener); 
timer.start(); 

function timerListener(event:TimerEvent):void 
{ 
    if (timer.currentCount == 1){ 

    if (counter==1){ var tween6:Tween = new Tween(mc3,"alpha",Strong.easeOut,1,0,1,true)}// fade out routine over 1 sec 
    var tween1:Tween = new Tween(mc1,"alpha",Strong.easeOut,0,1,2,true)// fade in routine over 2 seconds 

} 


if (timer.currentCount == 4) 
{ 
    var tween2:Tween = new Tween(mc1,"alpha",Strong.easeOut,1,0,1,true);// fade out routine 
    var tween3:Tween = new Tween(mc2,"alpha",Strong.easeOut,0,1,2,true);//fade in routine 
} 

if (timer.currentCount == 7) 
{ 
    var tween4:Tween = new Tween(mc2,"alpha",Strong.easeOut,1,0,1,true);// fade out routine 
    var tween5:Tween = new Tween(mc3,"alpha",Strong.easeOut,0,1,2,true);// fade in routine 

} 

if (timer.currentCount == 9)//reset routine 
    { 
    counter = 1; 
    timer.reset(); 
    timer.start(); 

} 
} 

回答

0

許多不同的方法來做到這一點;但是,看起來您已有一個counter對象;所以,讓我們使用它。

您依靠計時器的currentCount來確定播放哪個幻燈片和動畫。

timer.currentCount達到9,你設置counter爲1

if (timer.currentCount == 9) { 
    counter = 1; 

相反,它設置爲1,增加它讓每個經過它的價值就會增加。

if (timer.currentCount == 9) { 
    counter++; 

然後,當counter等於3時,不要啓動定時器。

要突出顯示相關代碼:

// initialize your counter 
var counter = 0; 

/* ... */ 

if (timer.currentCount == 9) { 
    counter++; 
    timer.reset(); 

    if (counter < 3) 
     timer.start(); 
}