2012-11-20 59 views
2

我被困在一個點,我想要做一系列動畫在Flash AS3中執行。我可以使用TweenClass爲我的動畫片段製作動畫,但無法使它們在一個序列中依次播放。動畫序列與as3

我想讓evntInTween已播放完畢後closeTween玩。

,我正在使用的代碼是:

import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 





BtnEvent.buttonMode = true; 
BtnEvent.addEventListener(MouseEvent.ROLL_OVER, EventOver); 
BtnEvent.addEventListener(MouseEvent.ROLL_OUT, EventOut); 
BtnEvent.addEventListener(MouseEvent.CLICK, EventClick); 


function EventOver(event:MouseEvent) { 
    event.target.gotoAndPlay(2); 
} 

function EventOut(event:MouseEvent) { 
    event.target.gotoAndPlay(11); 
} 


function EventClick(event:MouseEvent) { 
    var evntInTween:Tween = new Tween(eventzmov, "y", Strong.easeOut, 463.75, 1794.6, 3, true); 


    var closetween:Tween = new Tween(closeevent, "alpha", Strong.easeOut, 0, 1, 3, true); 



} 

回答

0

我想你應該巢充斥着,從而使第二補間後,才第一次創建停止播放 - 其發送fl.transitions.TweenEvent.MOTION_FINISH事件結束之後發生的,所以你指定一個監聽器來聽你的按鈕,不要忘記一旦不再需要它就放棄。

function EventClick(event:MouseEvent) { 
    var evntInTween:Tween = new Tween(eventzmov, "y", Strong.easeOut, 463.75, 1794.6, 3, true); 
    event.target.addEventListener(TweenEvent.MOTION_FINISH,startSecondTween); 
    evntInTween.start(); 
} 
function startSecondTween(e:TweenEvent):void { 
    var closetween:Tween = new Tween(closeevent, "alpha", Strong.easeOut, 0, 1, 3, true); 
    event.target.removeEventListener(TweenEvent.MOTION_FINISH,startSecondTween); 
    closetween.start(); 
} 

}

+0

謝謝哥們,你是救星! –

0

我會強烈建議切換到補間圖書館TweenLite的(又名TweenMax)通過使用GreenSock。使用語法,如:

//TweenLite.to(objectToTween, timeToTween, {propertyOne:value, propertyTwo:value, onComplete: functionToCallWhenFinished}); 
TweenLite.to(object, 4, {y:50, alpha:0, onComplete:finishedTween, ease:Quad.easeOut}); 

TweenMax(TweenLite的的功能更豐富verison)也有在幾行代碼複雜的動畫編程Timeline類。

https://www.greensock.com/tweenmax/