簡體   English   中英

帶有as3的動畫序列

[英]Animation Sequence with as3

我被困在某個位置,我想在Flash AS3中執行一系列動畫。 我可以使用TweenClass為我的電影剪輯制作動畫,但不能使它們依次播放。

我想讓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);



}

我認為您應該嵌套補間,以便僅在第一個補間停止播放后才創建第二個補間-它在結束后發送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();
}

}

我強烈建議通過greensock切換到Tweening庫TweenLite(又名TweenMax)。 使用如下語法:

//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版本)還具有一個TimeLine類,用於用幾行代碼對復雜的動畫進行編程。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM