Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Händelsemålet är en viktig del av händelsemodellen i Flash® Player och Adobe® AIR®. Händelsemålet fungerar som fokalpunkt för hur händelser flödar genom hierarkin i visningslistan. När en händelse (t.ex. ett musklick eller en tangenttryckning) uppträder, skickar Flash Player eller AIR-programmet ett händelseobjekt till händelseflödet från roten i visningslistan. Händelseobjektet arbetar sig sedan fram genom visningslistan tills det når händelsemålet, och sedan påbörjar den sin returresa genom visningslistan. Den här rundresan till händelsemålet kan begreppsmässigt delas upp i tre faser: hämtningsfasen omfattar resan från roten till den sista noden före händelsemålets nod, målfasen omfattar bara händelsemålets nod, och bubblingsfasen omfattar alla därpå följande noder som förekommer på vägen tillbaka till roten av visningslistan.
I allmänhet är det enklast att utöka EventDispatcher om en användardefinierad klass vill få möjligheter att skicka händelser. Om det inte går (dvs. om klassen redan utökar en annan klass) kan du istället implementera EventDispatcher-gränssnittet, skapa en EventDispatcher-medlem och skriva enkla kopplingar för kopplingssamtal till den sammanställda EventDispatcher.
Metod | Definieras med | ||
---|---|---|---|
EventDispatcher(target:IEventDispatcher = null)
Sammanställer en instans av klassen EventDispatcher. | EventDispatcher | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher |
EventDispatcher | () | Konstruktor |
public function EventDispatcher(target:IEventDispatcher = null)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sammanställer en instans av klassen EventDispatcher.
Klassen EventDispatcher används normalt som en basklass, vilket innebär att de flesta utvecklare inte behöver använda den här konstruktorfunktionen. Avancerade utvecklare som implementerar IEventDispatcher-gränssnittet behöver däremot använda den här konstruktorn. Om du inte kan utöka EventDispatcher-klassen utan istället måste implementera IEventDispatcher-gränssnittet, kan du använda den här konstruktorn för att sammanställa en instans av EventDispatcher-klassen.
Parametrartarget:IEventDispatcher (default = null ) — Målobjektet för händelser som skickas till EventDispatcher-objektet. Den här parametern används när EventDispatcher-instansen sammanställs av en klass som implementerar IEventDispatcher, vilket är nödvändigt för att behållarobjektet ska kunna bli mål för händelser. Använd inte den här parametern i enkla fall där en klass utökar EventDispatcher.
|
addEventListener | () | metod |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. Du kan registrera händelseavlyssnare på alla noder i visningslistan efter en särskild typ av händelse, fas och prioritet.
När du har registrerat en händelseavlyssnare går det inte att ändra dess prioritet genom ytterligare anrop till addEventListener()
. För att kunna ändra avlyssnarens prioritet måste du först anropa removeListener()
. Sedan går det att registrera avlyssnaren på nytt med den nya prioritetsnivån.
Kom ihåg att när avlyssnaren har registrerats så skapar anrop till addEventListener()
med annan type
eller useCapture
-värde en separat avlyssnarregistrering. Om du till exempel först registrerar en avlyssnare med useCapture
inställt på true
, avlyssnar den bara under hämtningsfasen. Om du anropar addEventListener()
igen med samma avlyssningsobjekt men med useCapture
inställt på false
, får du två separata avlyssnare: en som avlyssnar under hämtningsfasen och en som avlyssnar under både mål- och bubblingsfasen.
Det går inte att registrera en händelseavlyssnare endast för målfasen eller bubblingsfasen. De faserna är sammankopplade vid registreringen eftersom bubblande bara tillämpas på de som är överordnade målnoden.
Om du inte längre behöver en händelseavlyssnare tar du bort den genom att anropa removeEventListener()
. Annars finns risk för minnesproblem. Händelseavlyssnare tas inte automatiskt bort från minnet, eftersom skräpinsamlaren inte tar bort avlyssnaren så länge det skickande objektet finns (om inte parametern useWeakReference
är true
).
Kopiering av en EventDispatcher-instans innebär inte att de händelseavlyssnare som är kopplade till den kopieras. (Om en nod som du nyss skapat behöver en händelseavlyssnare måste du koppla avlyssnaren efter att du skapat noden.) Om du däremot flyttar en EventDispatcher-instans flyttas den kopplade händelseavlyssnaren med.
Om händelseavlyssnaren är registrerad på en nod samtidigt som en händelse bearbetas på den noden aktiveras inte händelseavlyssnaren under den aktuella fasen, men den kan aktiveras under en senare fas i händelseflödet, t.ex. bubblingsfasen.
Om en händelseavlyssnare tas bort från en nod samtidigt som en händelse bearbetas på den noden, aktiveras den ändå av de aktuella åtgärderna. När händelseavlyssnaren tagits bort anropas den aldrig mer (om den inte registreras på nytt för framtida bearbetning).
Parametrar
type:String — Händelsens typ.
| |
listener:Function — Avlyssnarfunktionen som bearbetar händelsen. Den här funktionen måste acceptera ett Event-objekt som sin enda parameter och får inte returnera någonting, se följande exempel:
function(evt:Event):void Funktionen kan ha vilket namn som helst. | |
useCapture:Boolean (default = false ) —
Avgör om avlyssnaren fungerar i hämtningsfasen eller mål- och bubblingsfaserna. Om useCapture är inställd på true bearbetar avlyssningsprocessen bara händelsen under hämtningsfasen och inte under mål- eller bubblingsfasen. Om useCapture är inställd på false bearbetar avlyssningsprocessen bara händelsen under mål- och bubblingsfasen. Om du vill avlyssna händelsen under alla tre faserna anropar du addEventListener två gånger, en gång med useCapture inställd på true , och sedan en gång med useCapture inställd på false .
| |
priority:int (default = 0 ) — Händelseavlyssnarens prioritetsnivå. Prioriteten anges av ett 32-bitars heltal med tecken. Ju högre tal, desto högre prioritet. Alla avlyssnare med prioritet n bearbetas före avlyssnare med prioritet n -1. Om två eller fler avlyssnare har samma prioritet bearbetas de i den ordning de lades till. Standardprioritet är 0.
| |
useWeakReference:Boolean (default = false ) — Avgör om referensen till avlyssnaren är stark eller svag. En stark referens (standard) förhindrar att avlyssnaren skräpsamlas. Det gör inte en svag referens. Medlemsfunktioner på klassnivå skräpsamlas inte, så du kan ange |
Utlöser
ArgumentError — Angiven listener() är inte en funktion.
|
dispatchEvent | () | metod |
public function dispatchEvent(event:Event):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickar en händelse till händelseflödet. Händelsemålet är det EventDispatcher-objekt som dispatchEvent()
-metoden anropas till.
Parametrar
event:Event — Event-objektet som skickas till händelseflödet. En klon av händelsen skapas automatiskt om en händelse skickas om. När en händelse har skickats kan dess target -egenskap inte ändras. Du måste skapa en ny kopia av händelsen om du vill skicka om för arbete.
|
Boolean — Värdet true om händelsen skickades. Värdet false anger att det inte fungerade eller att preventDefault() anropades för händelsen.
|
Utlöser
Error — Rekursionsgränsen för den här skickade händelsen är nådd.
|
hasEventListener | () | metod |
public function hasEventListener(type:String):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. Då kan du bestämma var i händelseflödeshierarkin ett EventDispatcher-objekt har förändrat hanteringen av en händelsetyp. Använd willTrigger()
om du vill ta reda på om en viss händelsetyp faktiskt aktiverar en händelseavlyssnare.
Skillnaden mellan hasEventListener()
och willTrigger()
är att hasEventListener()
bara undersöker det objekt som det hör till, medan willTrigger()
undersöker hela händelseflödet för händelsen som angetts av type
-parametern.
När hasEventListener()
anropas från ett LoaderInfo-objekt beaktas bara de avlyssnare som anroparen kan komma åt.
Parametrar
type:String — Händelsens typ.
|
Boolean — Värdet true om en avlyssnare för den angivna typen är registrerad, annars false .
|
Relaterade API-element
removeEventListener | () | metod |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tar bort en avlyssnare från EventDispatcher-objektet. Ett anrop till den här metoden har ingen effekt om det inte finns någon matchande avlyssnare registrerad för EventDispatcher-objektet.
Parametrar
type:String — Händelsens typ.
| |
listener:Function — Det avlyssnarobjekt som ska tas bort.
| |
useCapture:Boolean (default = false ) —
Anger om avlyssnaren registrerades för hämtningsfasen eller mål- och bubblingsfaserna. Om avlyssnaren registrerades både för hämtningsfasen och mål- och bubblingsfaserna krävs två anrop till removeEventListener() för att båda ska tas bort: ett anrop med useCapture() inställt på true och ett annat anrop med useCapture() inställt på false .
|
willTrigger | () | metod |
public function willTrigger(type:String):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. Den här metoden returnerar true
om en händelsavlyssnare aktiveras under någon av faserna i händelseflödet när en händelse av den angivna typen skickas till det här EventDispatcher-objektet eller någon av dess underordnade.
Skillnaden mellan metoderna hasEventListener()
och willTrigger()
är att hasEventListener()
bara undersöker det objekt som det hör till, medan willTrigger()
-metoden undersöker hela händelseflödet för händelsen som angetts av type
-parametern.
När willTrigger()
anropas från ett LoaderInfo-objekt beaktas bara de avlyssnare som anroparen kan komma åt.
Parametrar
type:String — Händelsens typ.
|
Boolean — Värdet true om en avlyssnare för den angivna typen kommer att aktiveras, annars false .
|
activate | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.ACTIVATE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. Den här händelsen är en utsändningshändelse, vilket innebär att den skickas av alla EventDispatcher-objekt med en avlyssnare registrerad för den här händelsen. Mer information om utsändningshändelser finns i klassen DisplayObject.
KonstantenACTIVATE
definierar värdet för type
-egenskapen för ett activate
-händelseobjekt.
Obs! Den här händelsen har varken en ”capture phase” eller en ”bubble phase” vilket innebär att händelseavlyssnaren måste läggas till direkt i potentiella mål, oavsett om målet visas i listan eller inte.
Enheter med AIR for TV skickar aldrig den här händelsen automatiskt. Du kan skicka den manuellt om du vill.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Alla DisplayObject-instanser med en avlyssnare registrerad för activate -händelsen. |
Relaterade API-element
deactivate | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.DEACTIVATE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. Den här händelsen är en utsändningshändelse, vilket innebär att den skickas av alla EventDispatcher-objekt med en avlyssnare registrerad för den här händelsen. Mer information om utsändningshändelser finns i klassen DisplayObject.
Event.DEACTIVATE
-konstanten definierar värdet på type
-egenskapen i ett deactivate
-händelseobjekt.
Obs! Den här händelsen har varken en ”capture phase” eller en ”bubble phase” vilket innebär att händelseavlyssnaren måste läggas till direkt i potentiella mål, oavsett om målet visas i listan eller inte.
Enheter med AIR for TV skickar aldrig den här händelsen automatiskt. Du kan skicka den manuellt om du vill.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Alla DisplayObject-instanser med en avlyssnare registrerad för deactivate -händelsen. |
Relaterade API-element
EventDispatcherExample
och CustomDispatcher
, en underklass av EventDispatcher
, för att visa hur en anpassad händelse skapas och skickas. I exemplen utförs följande uppgifter:
- Konstruktorn av
EventDispatcherExample
skapar en lokal variabeldispatcher
och skickar den till en ny CustomDispatcher-instans. - Inuti
CustomDispatcher
ställs en sträng in så att händelsen får namnetaction
ochdoAction()
-metoden deklareras. När den anropas skapar den här metoden händelsenaction
och skickar den medEventDispatcher.dispatchEvent()
. - Egenskapen
dispatcher
används sedan för att lägga tillaction
-händelseavlyssnaren och den associerade mottagarmetodenactionHandler()
som enkelt skriver ut information om händelsen när den skickas. - Metoden
doAction()
anropas ochaction
-händelsen skickas.
package { import flash.display.Sprite; import flash.events.Event; public class EventDispatcherExample extends Sprite { public function EventDispatcherExample() { var dispatcher:CustomDispatcher = new CustomDispatcher(); dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler); dispatcher.doAction(); } private function actionHandler(event:Event):void { trace("actionHandler: " + event); } } } import flash.events.EventDispatcher; import flash.events.Event; class CustomDispatcher extends EventDispatcher { public static var ACTION:String = "action"; public function doAction():void { dispatchEvent(new Event(CustomDispatcher.ACTION)); } }
Tue Jun 12 2018, 01:40 PM Z