as3, выполняя задания в определенном порядке - PullRequest
0 голосов
/ 22 января 2010

У меня здесь простая функция.

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

То, что он делает прямо сейчас: он переходит на ярлык «home», как только щелкает btnBack, что означает, что он полностью игнорирует альфа-часть.

Что мне нужно, это сделать: сначала выполнить альфа-часть, а затем сразу же после ее завершения выполнить вторую часть, где она перейдет к «домашнему» фрейму.

Спасибо, Wade

1 Ответ

0 голосов
/ 22 января 2010

Посмотрите документацию для 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")}});
}
...