2010-11-04 3 views
2

Selon les docs flash:EXIT_FRAME fait-il des bulles?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#

Les constantes définit Event.EXIT_FRAME la valeur de la propriété type d'un objet événement exitFrame .

Note: Cet événement n'a ni « phase de capture » ni une « phase de bulle », ce qui signifie que les écouteurs d'événement doivent être ajoutés directement aux cibles potentielles, si la cible se trouve sur la liste d'affichage ou ne pas.

Cependant lors de l'appel gotoAndStop sur un enfant DisplayObject l'événement EXIT_FRAME est soulevé sur son récipient et il semble y avoir aucun moyen de l'arrêter.

Par exemple:

 private function init(e:Event = null):void 
    { 
    removeEventListener(Event.ADDED_TO_STAGE, init); 
    // entry point 
    c = new Circle2(); 
    addChild(c); 

    this.addEventListener(Event.ENTER_FRAME, enterFrame); 
    this.addEventListener(Event.EXIT_FRAME, exitFrame); 
    } 

    private function enterFrame(e:Event):void 
    { 
    trace("enter frame"); 
    c.setPercent(5); // this calls gotoAndStop() 
    } 

    private function exitFrame(e:Event):void 
    { 
    trace("exit frame"); 
    } 

sortie est:

saisir cadre

trame de sortie

trame de sortie

dans le constructeur CIRCLE2 j'ai essayé ce

this.addEventListener(Event.EXIT_FRAME, function(e:Event):void 
{ 
e.stopPropagation(); 
}); 
+0

J'ai le même comportement dans AS3 - Flash CC Pro. J'essaie de détecter le cas dans le gestionnaire d'événements afin que je puisse arrêter l'exécution avant d'exécuter le vrai code ... – jacmkno

Répondre

0

Vous pouvez essayer d'utiliser capture phase puis appelez stopPropagation en elle.

this.addEventListener(Event.EXIT_FRAME, function(e:Event):void 
{ 
    e.stopPropagation(); 
}, true); 

Notez le vrai à la fin de la addEventListener.

+0

Merci pour votre réponse, mais cela n'a malheureusement pas fait de différence. –

+0

@ChrisPorter avez-vous déjà trouvé une explication à cela? J'expérimente exactement la même situation; plusieurs EXIT_FRAME sans son ENTER_FRAME correspondant. Merci! – Jotakun

Questions connexes