2010-01-22 3 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, что означает, что она совершенно не считаясь с альфа-часть.

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

Спасибо, Wade

ответ

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 - Моя Гото библиотека прошлых лет

Оба этих библиотек имеют подобные интерфейсы и использовать свойство 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")}}); 
} 
+0

в goBackFinish вы должны удалить прослушиватель событий. –

+0

Хороший улов. Я всегда был в своем собственном коде. – sberry

Смежные вопросы