2010-01-22 62 views
0

我有一個簡單的功能在這裏。as3,按照一定的順序完成任務

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

function goBack (e:MouseEvent):void{ 
var backAlpha:Tween = new Tween(MovieClip(parent).blueOverlay, "alpha", Strong.easeOut, 1, 0, 2, true); 
MovieClip(parent).gotoAndStop("home"); 
} 
btnBack.addEventListener(MouseEvent.CLICK, goBack); 

它是做什麼現在的問題是:它只要btnBack點擊要到「家」的標籤,這意味着它完全無視阿爾法一部分。

我需要做的是:首先做alpha部分,然後在完成之後,做第二部分跳轉到「home」框架的部分。

感謝, 韋德

回答

0

看的文檔fl.transtions.Tween

具體來說,看motionFinish事件。

基本上,你想做的事是這樣的:

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

function goBackStart (e:MouseEvent):void{ 
    var backAlpha:Tween = new Tween(this.parent.blueOverlay, "alpha", Strong.easeOut, 1, 0, 2, true); 
    backAlpha.addEventListener("motionFinish", goBackFinish); 
} 

function goBackFinish(e:Event) { 
    removeEventListener(e.target.obj, goBackFinish); 
    this.parent.gotoAndStop("home"); 
} 

btnBack.addEventListener(MouseEvent.CLICK, goBackStart); 

我不是如何內置補間一流的作品,所以我使用以下兩種風扇:

TweenLite - 我的新寵

Tweener - 我的goto的過去幾年

這些庫的庫都具有相似的API和使用onComplete屬性來處理完成。

使用中間人,你可以這樣做:

import com.caurina.transitions.Tweener; 

btnBack.addEventListener(MouseEvent.CLICK, goBack); 

function goBack(e:MouseEvent):void { 
    Tweener.addTween(this.parent.blueOverlay, {alpha:0, time:2.0, transition:"easeOutQuad", onComplete:function() {this.parent.gotoAndStop("home")}}); 
} 
+0

在goBackFinish應刪除事件偵聽器。 – 2010-01-22 20:57:42

+0

好的。我一直會用我自己的代碼。 – sberry 2010-01-22 20:59:17