Händelsemodeller och återanrop

Försök använda enkla återanrop i stället för händelsemodeller.

Händelsemodellen i ActionScript 3.0 baseras på konceptet med att skicka objekt. Händelsemodellen är objektorienterad och optimerad för kodåteranvändning. Metoden dispatchEvent() går igenom listan med avlyssnare och anropar händelsehanterarmetoden på varje registrerat objekt. En av nackdelarna med händelsemodellen är emellertid att du troligtvis kommer att skapa många objekt över programmets livscykel.

Tänk dig att du måste skicka en händelse från tidslinjen för att ange slutet på en animeringssekvens. För att åstadkomma detta kan du skicka en händelse från en specifik bildruta på tidslinjen, vilket visas i följande kodexempel:

dispatchEvent( new Event ( Event.COMPLETE ) );

Klassen Document kan användas för att avlyssna händelsen med följande kod:

addEventListener( Event.COMPLETE, onAnimationComplete );

Även om detta är ett korrekt arbetssätt kan det gå långsammare att använda den ursprungliga händelsemodellen och dessutom förbrukas mer minne än om du valt en traditionell återanropsfunktion. Händelseobjekt måste skapas och tilldelas i minnet vilket medför att prestandan försämras. Om du exempelvis avlyssnar händelsen Event.ENTER_FRAME, skapas ett nytt händelseobjekt på varje bildruta för händelsehanteraren. Prestandan försämras speciellt för visningsobjekt eftersom inspelnings- och bubblingsfasen kan bli omfattande om visningslistan är komplex.