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 がクリックされるとすぐに「ホーム」ラベルに移動することです。つまり、アルファ部分を完全に無視しています。

私がする必要があるのは、最初にアルファ部分を実行し、それが終了した直後に、「ホーム」フレームにジャンプする2番目の部分を実行することです。

ありがとう、ウェイド

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 に答える