Modell för händelsehantering i ActionScript 3.0

ActionScript 3.0 introducerar en enda modell för händelsehantering som ersätter de olika mekanismerna för händelsehantering som finns i tidigare versioner av ActionScript. Den nya händelsemodellen bygger på Document Object Model (DOM) Level 3-händelsespecifikationen.

För utvecklare med erfarenhet av att använda metoden addListener() i ActionScript 2.0 kan det vara till hjälp att nämna skillnaderna mellan händelseavlyssnarmodellen i ActionScript 2.0 och händelsemodellen i ActionScript 3.0. I listan nedan beskrivs några av de större skillnaderna mellan de två händelsemodellerna:

  • Om du vill lägga till händelseavlyssnare i ActionScript 2.0 använder du addListener() i vissa fall och addEventListener() i andra. I ActionScript 3.0 använder du alltid addEventListener() .

  • Det finns inget händelseflöde i ActionScript 2.0, vilket betyder att metoden addListener() enbart kan anropas för objektet som sänder händelsen. I ActionScript 3.0 kan metoden addEventListener() anropas för alla objekt som tillhör händelseflödet.

  • I ActionScript 2.0 kan händelseavlyssnare vara funktioner, metoder eller objekt. I ActionScript 3.0 kan bara funktioner och metoder vara händelseavlyssnare.

  • Syntaxen on( event ) fungerar inte längre i ActionScript 3.0, så du kan inte bifoga ActionScript-händelsekod till ett filmklipp. Du kan bara använda addEventListener() för att lägga till en händelseavlyssnare.

    Följande exempel, som avlyssnar en MouseEvent.CLICK -händelse för en Button-komponent som heter aButton , illustrerar den grundläggande händelsehanterarmodellen i ActionScript 3.0:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
    function clickHandler(event:MouseEvent):void { 
    trace("clickHandler detected an event of type: " + event.type);  
    trace("the event occurred on: " + event.target.name);  
    }

    Mer information om händelsehantering i ActionScript 3.0 finns i Programmering med ActionScript 3.0. Mer information om händelsehantering för komponenter i ActionScript 3.0 finns i Hantera händelser .