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