Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gebeurtenisdoelen zijn een belangrijk onderdeel van het gebeurtenismodel van Flash ® Player en Adobe AIR. Het gebeurtenisdoel fungeert als brandpunt voor de manier waarop gebeurtenissen door de hiërarchie van het weergaveoverzicht gaan. Wanneer een gebeurtenis als een muisklik of een toetsdruk plaatsvindt, verzendt Flash Player of de toepassing AIR een gebeurtenisobject naar de gebeurtenisstroom vanaf de basis van het weergaveoverzicht. Het gebeurtenisobject gaat vervolgens door het weergaveoverzicht tot het het gebeurtenisdoel bereikt, waarna het weer terugkeert door het weergaveoverzicht. Deze retourtocht naar het gebeurtenisdoel kan in drie fasen worden opgedeeld: de vastlegfase omvat de tocht van de basis naar het laatste knooppunt voor het knooppunt van het gebeurtenisdoel, de doelfase omvat alleen het knooppunt van het gebeurtenisdoel en de terugkoppelfase omvat alle volgende knooppunten die worden aangetroffen op de weg terug naar de basis van het weergaveoverzicht.
Gewoonlijk is het uitbreiden van de EventDispatcher de eenvoudigste manier voor een, door de gebruiker gedefinieerde, klasse om verzendmogelijkheden te krijgen. Wanneer dit niet mogelijk is (wanneer de klasse al een andere klasse uitbreidt), kunt u in plaats daarvan de interface IEventDispatcher implementeren, een lid van een EventDispatcher maken en eenvoudige hooks schrijven om aanroepen van de samengevoegde EventDispatcher te routeren.
Methode | Gedefinieerd door | ||
---|---|---|---|
EventDispatcher(target:IEventDispatcher = null)
Voegt een instantie van de klasse EventDispatcher samen. | EventDispatcher | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher |
EventDispatcher | () | Constructor |
public function EventDispatcher(target:IEventDispatcher = null)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voegt een instantie van de klasse EventDispatcher samen.
De klasse EventDispatcher wordt gewoonlijk als een basisklasse gebruikt. Dat betekent dat de meeste ontwikkelaars deze constructorfunctie niet hoeven te gebruiken. Gevorderde ontwikkelaars die de interface IEventDispatcher implementeren moeten deze constructor gebruiken. Wanneer u de klasse EventDispatcher niet kunt uitbreiden en in plaats daarvan de interface IEventDispatcher moet implementeren, kunt u deze constructor gebruiken om een instantie van de klasse EventDispatcher samen te voegen.
Parameterstarget:IEventDispatcher (default = null ) — Het doelobject voor gebeurtenissen die zijn verzonden naar het object EventDispatcher. Deze parameter wordt gebruikt wanneer de instantie EventDispatcher wordt samengevoegd door een klasse die IEventDispatcher implementeert. Deze wordt gebruikt zodat het omvattende object het doel kan zijn voor gebeurtenissen. Gebruik deze parameter niet in eenvoudige gevallen waar een klasse EventDispatcher uitbreidt.
|
addEventListener | () | methode |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. U kunt gebeurtenislisteners registreren op alle knooppunten in het weergaveoverzicht van een specifiek type gebeurtenis, fase of prioriteit.
Nadat het registreren van een gebeurtenislistener is voltooid, kunt u de prioriteit ervan niet wijzigen door extra aanroepen van addEventListener()
. Wanneer u de prioriteit van een listener wilt wijzigen, moet u eerst removeListener()
aanroepen. U kunt de listener opnieuw registreren met het nieuwe prioriteitsniveau.
Nadat de listener is geregistreerd, resulteren volgende aanroepen van addEventListener()
met een andere waarde voor type
of useCapture
in het maken van een afzonderlijke listenerregistratie. Wanneer u bijvoorbeeld eerst een listener registreert bij useCapture
ingesteld op true
, luistert deze alleen tijdens de vastlegfase. Wanneer u addEventListener()
opnieuw aanroept met hetzelfde listenerobject maar met useCapture
ingesteld op false
, hebt u twee afzonderlijke listeners: één die tijdens de vastlegfase luistert en één die tijdens de doel- en terugkoppelfasen luistert.
U kunt geen gebeurtenislistener registeren voor alleen de doel- of terugkoppelfase. Deze fasen worden bij de registratie gekoppeld, omdat terugkoppeling alleen van toepassing is op voorouders van het doelknooppunt.
Wanneer u een gebeurtenislistener niet langer nodig hebt, kunt u deze verwijderen door removeEventListener()
aan te roepen; anders kan dit resulteren in geheugenproblemen. Gebeurtenisluisteraars worden niet automatisch uit het geheugen verwijderd, omdat de verzamelaar met ongewenste details de luisteraar niet verwijderd zolang het verzendende object bestaat (behalve als de parameter useWeakReference
op true
is ingesteld).
Het kopiëren van een instantie EventDispatcher kopieert de daaraan gekoppelde gebeurtenislisteners. (Wanneer uw nieuwe knooppunt een gebeurtenislistener nodig heeft, moet u de listener eraan koppelen na het maken van het knooppunt.) Wanneer u echter een instantie EventDispatcher verplaatst, worden de daaraan gekoppelde listeners mee verplaatst.
Wanneer de gebeurtenislistener wordt geregistreerd op een knooppunt terwijl een gebeurtenis op dit knooppunt wordt verwerkt, wordt de gebeurtenislistener niet geactiveerd tijdens de huidige fase maar kan wel worden geactiveerd in een latere fase in de gebeurtenisstroom, zoals de terugkoppelfase.
Wanneer een gebeurtenislistener wordt verwijderd uit een knooppunt terwijl een gebeurtenis wordt verwerkt op het knooppunt, wordt deze nog steeds geactiveerd door de huidige handelingen. Nadat deze is verwijderd, wordt de gebeurtenislistener niet meer aangeroepen (tenzij deze opnieuw wordt geregistreerd voor toekomstige verwerking).
Parameters
type:String — Het type gebeurtenis.
| |
listener:Function — De listenerfunctie die de gebeurtenis verwerkt. Deze functie moet een Event-object accepteren als de enige parameter en niets retourneren, zoals in dit voorbeeld wordt getoond:
function(evt:Event):void De functie kan elke naam hebben. | |
useCapture:Boolean (default = false ) —
Bepaalt of de listener werkt in de vastleg-, doel- en terugkoppelfase. Wanneer useCapture wordt ingesteld op true , verwerkt de listener de gebeurtenis alleen tijdens de vastlegfase en niet tijdens de doel- of terugkoppelfase. Wanneer useCapture wordt ingesteld op false , verwerkt de listener de gebeurtenis alleen tijdens de doel- of terugkoppelfase. Wanneer u in alle drie de fasen naar de gebeurtenis wilt luisteren, roept u addEvenListener() tweemaal aan, één keer met useCapture ingesteld op true en één keer met useCapture ingesteld op false .
| |
priority:int (default = 0 ) — Het prioriteitsniveau van de gebeurtenislistener. De prioriteit is opgegeven door een 32-bits geheel getal. Hoe hoger het getal, hoe hoger de prioriteit. Alle listeners met een prioriteit n worden verwerkt voor listeners met een prioriteit n -1. Wanneer twee of meer listeners dezelfde prioriteit hebben, worden ze verwerkt in de volgorde waarin ze werden toegevoegd. De standaardprioriteit is 0.
| |
useWeakReference:Boolean (default = false ) — Bepaalt of de verwijzing van de listener sterk of zwak is. Een sterke verwijzing (standaard) voorkomt dat uw listener wordt opgeschoond. Een zwakke verwijzing doet dat niet. Lidfuncties op klasseniveau worden niet opgeschoond. U kunt dus |
Gegenereerde uitzondering
ArgumentError — De opgegeven listener is geen functie.
|
dispatchEvent | () | methode |
public function dispatchEvent(event:Event):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verzendt een gebeurtenis naar de gebeurtenisstroom. Het doel van de gebeurtenis is het object EventDispatcher waar de methode dispatchEvent()
op wordt aangeroepen.
Parameters
event:Event — Het Event-object dat naar de gebeurtenisstroom is verzonden. Wanneer de gebeurtenis opnieuw wordt verzonden, wordt automatisch een kloon van de gebeurtenis gemaakt. Nadat een gebeurtenis is verzonden, kan de eigenschap target ervan niet meer worden gewijzigd. U moet daarom een nieuwe kopie van de gebeurtenis maken om opnieuw verzenden mogelijk te maken.
|
Boolean — De waarde true wanneer het verzenden van de gebeurtenis is voltooid. Een waarde false geeft aan dat verzending is mislukt of dat preventDefault() op de gebeurtenis is aangeroepen.
|
Gegenereerde uitzondering
Error — De limiet voor herhaalde verzending van de gebeurtenis is bereikt.
|
hasEventListener | () | methode |
public function hasEventListener(type:String):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. Op die manier kunt u bepalen waar een object EventDispatcher het afhandelen van een gebeurtenis in de hiërarchie van de gebeurtenisstroom heeft gewijzigd. Wanneer u wilt bepalen of een specifiek gebeurtenistype daadwerkelijk een gebeurtenislistener activeert, kunt u willTrigger()
gebruiken.
Het verschil tussen hasEventListener()
en willTrigger()
is dat hasEventListener()
alleen het object controleert waar het toe behoort, terwijl willTrigger()
de gehele gebeurtenisstroom controleert voor de gebeurtenis die is opgegeven door de parameter type
.
Wanneer hasEventListener()
wordt aangeroepen door een object LoaderInfo, wordt alleen rekening gehouden met de listeners waartoe de aanroeper toegang heeft.
Parameters
type:String — Het type gebeurtenis.
|
Boolean — De waarde true wanneer de listener van een specifiek type is geregistreerd; anders false .
|
Verwante API-elementen
removeEventListener | () | methode |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verwijdert een listener uit het object EventDispatcher. Wanneer geen overeenkomende listener is geregistreerd bij het object EventDispatcher, heeft een aanroep van deze methode geen invloed.
Parameters
type:String — Het type gebeurtenis.
| |
listener:Function — Het listenerobject dat wordt verwijderd.
| |
useCapture:Boolean (default = false ) —
Geeft aan of de listener is geregistreerd voor de vastleg-, doel- en terugkoppelfase. Wanneer de listener is geregistreerd voor zowel de vastlegfase als de doel- en terugkoppelfase, zijn twee aanroepen van de removeEventListener() nodig om beide te verwijderen, één met useCapture ingesteld op true en één met useCapture ingesteld op false .
|
willTrigger | () | methode |
public function willTrigger(type:String):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. Deze methode retourneert true
wanneer een gebeurtenislistener wordt geactiveerd tijdens een willekeurige fase van de gebeurtenisstroom wanneer een gebeurtenis van het opgegeven type wordt verzonden naar dit object EventDispatcher of een van de afstammingen.
Het verschil tussen hasEventListener()
en willTrigger()
is dat hasEventListener()
alleen het object controleert waar het toe behoort, terwijl willTrigger()
de gehele gebeurtenisstroom controleert voor de gebeurtenis die is opgegeven door de parameter type.
Wanneer willTrigger()
wordt aangeroepen door een object LoaderInfo, wordt alleen rekening gehouden met de listeners waartoe de aanroeper toegang heeft.
Parameters
type:String — Het type gebeurtenis.
|
Boolean — De waarde true wanneer de listener van een specifiek type wordt geactiveerd; anders false .
|
activate | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.ACTIVATE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. Deze gebeurtenis is een uitzendgebeurtenis, wat betekent dat deze wordt verzonden door alle objecten EventDispatcher met een listener die is ingesteld voor deze gebeurtenis. Zie de klasse DisplayObject voor meer informatie over uitzendgebeurtenissen.
De constanteACTIVATE
bevat de waarde van de eigenschap type
van een activate
-gebeurtenisobject.
Opmerking: Deze gebeurtenis heeft geen 'vastlegfase' en geen 'bubbelfase', wat betekent dat gebeurtenislisteners rechtstreeks aan mogelijke doelen moeten worden toegevoegd, ongeacht of het doel voorkomt in de weergavelijst.
Deze gebeurtenis wordt nooit automatisch verzonden door AIR for TV. U kunt de gebeurtenis wel handmatig verzenden.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Elke DisplayObject-instantie met een listener die is geregistreerd voor de activate -gebeurtenis. |
Verwante API-elementen
deactivate | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.DEACTIVATE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. Deze gebeurtenis is een uitzendgebeurtenis, wat betekent dat deze wordt verzonden door alle objecten EventDispatcher met een listener die is ingesteld voor deze gebeurtenis. Zie de klasse DisplayObject voor meer informatie over uitzendgebeurtenissen.
De constanteEvent.DEACTIVATE
definieert de waarde van de eigenschap type
van een deactivate
-gebeurtenisobject.
Opmerking: Deze gebeurtenis heeft geen 'vastlegfase' en geen 'bubbelfase', wat betekent dat gebeurtenislisteners rechtstreeks aan mogelijke doelen moeten worden toegevoegd, ongeacht of het doel voorkomt in de weergavelijst.
Deze gebeurtenis wordt nooit automatisch verzonden door AIR for TV. U kunt de gebeurtenis wel handmatig verzenden.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Elke DisplayObject-instantie met een listener die is geregistreerd voor de deactivate -gebeurtenis. |
Verwante API-elementen
EventDispatcherExample
en CustomDispatcher
, een subklasse van EventDispatcher
, gebruikt om te tonen hoe een aangepaste gebeurtenis wordt gemaakt en verzonden. In het voorbeeld worden de volgende taken uitgevoerd:
- De constructor van
EventDispatcherExample
maakt een lokale variabeledispatcher
en wijst deze toe aan een nieuwe instantie CustomDispatcher. - Binnen
CustomDispatcher
wordt een tekenreeks ingesteld, zodat de gebeurtenis de naamaction
krijgt en de methodedoAction()
wordt gedeclareerd. Wanneer deze wordt aangeroepen, maakt de methode de gebeurtenisaction
en verzendt het verzendt deze met behulp vanEventDispatcher.dispatchEvent()
. - De eigenschap
dispatcher
wordt vervolgens gebruikt om de gebeurtenislisteneraction
en de daaraan gekoppelde abonneemethodeactionHandler()
toe te voegen, die informatie over de gebeurtenis afdrukt wanneer deze wordt verzonden. - De methode
doAction()
wordt aangeroepen, die de gebeurtenisaction
verzendt.
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)); } }
Wed Jun 13 2018, 11:42 AM Z