2010-01-22 8 views
0

J'ai une fonction simple qui va ici.as3, effectuer des tâches dans un certain ordre

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

Ce qu'il est en train de faire est maintenant: il va à l'étiquette « maison » dès btnBack est cliqué, ce qui signifie qu'il ne tient pas compte complètement la partie alpha.

Ce que j'ai besoin de faire est: faire la partie alpha d'abord, puis juste après c'est terminé, faire la deuxième partie où il saute à la trame "maison".

Merci, Wade

Répondre

0

Regardez la documentation fl.transtions.Tween

Plus précisément, regardez l'événement motionFinish.

Fondamentalement, ce que vous voulez faire quelque chose comme ceci:

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

Je ne suis pas fan de la façon dont les travaux de classe Interpolation de intégrée, donc j'utiliser l'une de ces:

TweenLite - Mon nouveau favori

Tweener - Ma bibliothèque goto des années passées

ces deux bibliothèques ont des API similaires et utiliser un Propriété onComplete pour gérer l'achèvement.

En utilisant Tweener vous pouvez faire:

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

dans goBackFinish vous devez supprimer l'écouteur d'événement. –

+0

Bonne prise. Je le ferais toujours dans mon propre code. – sberry