0

我有一个简单的功能。

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,它就会转到“home”标签,这意味着它完全忽略了 alpha 部分。

我需要它做的是:首先做 alpha 部分,然后在它完成之后,做第二部分,它会跳转到“home”帧。

谢谢,韦德

4

1 回答 1

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);

我不喜欢内置的 Tweening 类是如何工作的,所以我使用以下任何一种:

TweenLite - 我的新宠

Tweener - 我过去几年的 goto 图书馆

这两个库都具有相似的 API,并使用 onComplete 属性来处理完成。

使用 Tweener 你可以:

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")}});
}
于 2010-01-22T20:52:58.207 回答