Hantera händelser

Alla komponenter sänder händelser när en användare interagerar med dem. När en användare till exempel klickar på en Button skickar den en MouseEvent.CLICK -händelse, och när en användare väljer ett objekt i en List, skickar List en Event. CHANGE -händelse. En händelse kan också inträffa när något viktigt händer med en komponent, till exempel när innehållet har lästs in för en UILoader-förekomst, vilket genererar en Event.COMPLETE -händelse. Om du vill hantera en händelse skriver du ActionScript-kod som körs när händelsen inträffar.

En komponents händelser innehåller händelserna i alla klasser som komponenten ärver från. Det betyder att alla användargränssnittskomponenter i ActionScript 3.0 ärver händelser från klassen UIComponent, eftersom det är basklassen för användargränssnittskomponenterna i ActionScript 3.0. En lista med de händelser som en komponent sänder finns i avsnittet med händelser för komponentklassen i Referenshandbok för ActionScript 3.0 i Adobe Flash Professional .

En fullständig förklaring av händelsehantering i ActionScript 3.0 finns i Programmering med ActionScript 3.0 .

Om händelseavlyssnare

Följande huvudpunkter gäller för hantering av händelser för ActionScript 3.0-komponenter:

  • Alla händelser sänds av en förekomst av en komponentklass. Komponentförekomsten är utsändaren .

  • Du registrerar en händelseavlyssnare genom att anropa metoden addEventListener() för komponentförekomsten. Följande kodrad lägger till en avlyssnare för händelsen MouseEvent.CLICK i Button-förekomsten aButton :

    aButton.addEventListener(MouseEvent.CLICK, clickHandler);

    Den andra parametern i metoden addEventListener() registrerar namnet på funktionen, clickHandler , som ska anropas när händelsen inträffar. Den här funktionen kallas också en återkopplingsfunktion .

  • Du kan registrera flera avlyssnare för en komponentförekomst.

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    aButton.addEventListener(MouseEvent.CLICK, clickHandler2);
  • Du kan registrera en avlyssnare för flera komponetförekomster.

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    bButton.addEventListener(MouseEvent.CLICK, clickHandler1);
  • Händelsehanterarfunktionen skickas till ett händelseobjekt som innehåller information om händelsetypen och förekomsten som sänder händelsen. Mer information finns i Om händelseobjektet .

  • Avlyssnaren förblir aktiv tills programmet avslutas eller du uttryckligen tar bort den med metoden removeEventListener() . Följande kodrad tar till exempel bort avlyssnaren för händelsen MouseEvent.CLICK för aButton :

    aButton.removeEventListener(MouseEvent.CLICK, clickHandler);

Om händelseobjektet

Händelseobjektet ärver egenskaper från objektklassen Event och har egenskaper som innehåller information om händelsen som inträffade, inklusive egenskaperna target och type som tillhandahåller viktig information om händelsen:

Egenskap

Beskrivning

type

En sträng som anger händelsens typ.

target

En referens till komponentförekomsten som sänder händelsen.

Om en händelse har ytterligare egenskaper visas de i händelseklassens beskrivning i Referenshandbok för ActionScript 3.0 i Adobe Flash Professional .

Händelseobjektet genereras automatiskt och skickas till händelsehanterarfunktionen när en händelse inträffar.

Du kan använda händelseobjektet inuti funktionen för att komma åt namnet på händelsen som sändes, eller förekomstnamnet på komponenten som sände händelsen. Från förekomstnament kan du komma åt andra komponentegenskaper. Följande kod använder till exempel egenskapen target för Event-objektet evtObj för att komma åt egenskapen label för aButton och visa den i utdatapanelen:

import fl.controls.Button; 
import flash.events.MouseEvent; 
 
var aButton:Button = new Button(); 
aButton.label = "Submit"; 
addChild(aButton); 
aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(evtObj:MouseEvent){ 
trace("The " + evtObj.target.label + " button was clicked"); 
}