Naslaggids voor Adobe ActionScript® 3.0 voor het Adobe® Flash®-platform
Startpagina  |  Lijst met pakketten en klassen verbergen |  Pakketten  |  Klassen  |  Nieuw  |  Index  |  Bijlagen  |  Waarom in het Engels?
Filters: Gegevens ophalen van server...
Gegevens ophalen van server...
flash.events 

IEventDispatcher  - AS3

Pakketflash.events
Interfacepublic interface IEventDispatcher
Geïmplementeerd door AbstractSearchFilterVO, AbstractService, AbstractStage, Asset, AssetAction, AssetAction, AssetPropertyDescriptor, AssetPropertyDescriptor, AssetTypeDescriptor, AssetTypeDescriptor, AssetVO, AttachmentCommand, AttachmentLoader, AuditLevel, BaseEntityVO, BaseUser, BasicService, BindingElement, CDMAssignment, CollectionToken, CollectionToken, ContainerLayout, ContextData, CustomAttribute, DataDictionaryElement, DataDictionaryReference, DataDictionarySearchFilter, DataDownload, DataManager, DataStoreEventDispatcher, Document, DocumentAssignment, EventDispatcher, FavoritesManager, FileData, FileModel, FlexConfiguration, Folder, FormatterUtil, InitiateFromStartTaskCommand, LDMAssignment, LinkElement, ManagedRemoteService, Message, ModuleAssignment, OLAPCube, ObjectToken, ObjectToken, OnDemandEventDispatcher, OperationInfo, OperationParameter, PDFResponseType, Participant, Portfolio, PreferencesManager, Query, QueueBase, QueuesManager, RelationshipVO, Reminder, RemotingServiceInfo, ResolvedContent, Review, ReviewContext, ReviewContext, ReviewSearchFilter, ReviewTemplateReference, SearchFilter, SearchFilter, SearchQuery, SearchQuery, SearchTemplateDescriptors, Session, ShaderFilter, SimpleFunctionMapper, Stage, Statement, Style, SupportingDocument, SyncManager, TaskAttachmentInfo, TaskProperty, TeamMember, TemplateSearchFilter, TextFlow, User, User, UserPreference, Variable, WorkItem

Taalversie: ActionScript 3.0
Runtimeversies: AIR 1.0, Flash Player 9, Flash Lite 4

De interface IEventDispatcher definieert methoden voor het toevoegen of verwijderen van gebeurtenislisteners, controleert of specifieke typen gebeurtenislistener zijn geregistreerd en verzendt gebeurtenissen.

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, wordt vanuit het hoofdniveau van de weergavelijst een gebeurtenisobject naar de gebeurtenisstroom verzonden. Het gebeurtenisobject wordt omgeleid naar het gebeurtenisdoel, dat in feite in drie fasen is verdeeld: de vastlegfase bestaat uit de route van het hoofdniveau tot aan het laatste knooppunt vóór het knooppunt van het gebeurtenisdoel; de doelfase bestaat alleen uit het knooppunt van het gebeurtenisdoel, en de terugkoppelfase bestaat uit alle knooppunten tijdens de terugweg naar het hoofdniveau van de weergavelijst.

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.

Bekijk de voorbeelden



Openbare methoden
 MethodeGedefinieerd door
  
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.
IEventDispatcher
  
Verzendt een gebeurtenis naar de gebeurtenisstroom.
IEventDispatcher
  
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis.
IEventDispatcher
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Verwijdert een listener uit het object EventDispatcher.
IEventDispatcher
  
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis.
IEventDispatcher
Methodedetails

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 removeEventListener() 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 EventDispatcher.removeEventListener() aan te roepen; anders kan dit resulteren in geheugenproblemen. Objecten met geregistreerde gebeurtenislisteners worden niet automatisch verwijderd uit het geheugen, omdat de opschoonfunctie geen objecten verwijdert waar nog verwijzingen naar bestaan.

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 gebeurtenisobject 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. Prioriteiten worden 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 useWeakReference op true instellen voor deze functies zonder dat deze zullen worden opgeschoond. Wanneer u useWeakReference op true instelt voor een listener die een geneste binnenfunctie is, wordt de functie wel opgeschoond en is deze niet meer blijvend. Wanneer u verwijzingen naar de binnenfunctie maakt (deze opslaat in een andere variabele), wordt de functie niet opgeschoond en blijft deze blijvend.

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 dispatchEvent() op wordt aangeroepen.

Parameters

event:Event — Het gebeurtenisobject dat naar de gebeurtenisflow is verzonden.

Geretourneerde waarde
Boolean — Een waarde true tenzij preventDefault() wordt aangeroepen voor de gebeurtenis; in dat geval wordt false geretourneerd.

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 IEventDispatcher.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.

Parameters

type:String — Het type gebeurtenis.

Geretourneerde waarde
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 removeEventListener() nodig om ze allebei te verwijderen: één aanroep met useCapture ingesteld op true en een andere 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.

Parameters

type:String — Het type gebeurtenis.

Geretourneerde waarde
Boolean — De waarde true wanneer de listener van een specifiek type wordt geactiveerd; anders false.
IEventDispatcherExample.as

In het volgende voorbeeld worden de voorbeeldklassen IEventDispatcherExample en DecoratedDispatcher gebruikt om te tonen hoe de klasse IEventDispatcher kan worden geïmplementeerd en gebruikt. In het voorbeeld wordt dit bewerkstelligd door elke methode van DecoratedDispatcher op dezelfde manier te implementeren als in EventDispatcher. In de constructor voor IEventDispatcherExample wordt een nieuwe instantie (met de naam decorDispatcher) van de klasse DecoratedDispatcher geconstrueerd en de wordt de variabeledecorDispatcher gebruikt om addEventListener() aan te roepen met de aangepaste gebeurtenis doSomething, die vervolgens wordt afgehandeld door didSomething(), die een regel tekst afdrukt met behulp van trace().
 
package {
        import flash.events.Event;
        import flash.display.Sprite;
       
        public class IEventDispatcherExample extends Sprite {
                public function IEventDispatcherExample() {
                        var decorDispatcher:DecoratedDispatcher = new DecoratedDispatcher();
                        decorDispatcher.addEventListener("doSomething", didSomething);
                        decorDispatcher.dispatchEvent(new Event("doSomething"));
                }
               
                public function didSomething(evt:Event):void {
                        trace(">> didSomething");
                }
        }
}

import flash.events.IEventDispatcher;
import flash.events.EventDispatcher;
import flash.events.Event;
               
class DecoratedDispatcher implements IEventDispatcher {       
    private var dispatcher:EventDispatcher;
               
    public function DecoratedDispatcher() {
        dispatcher = new EventDispatcher(this);
    }
           
    public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void{
        dispatcher.addEventListener(type, listener, useCapture, priority);
    }
           
    public function dispatchEvent(evt:Event):Boolean{
        return dispatcher.dispatchEvent(evt);
    }
    
    public function hasEventListener(type:String):Boolean{
        return dispatcher.hasEventListener(type);
    }
    
    public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void{
        dispatcher.removeEventListener(type, listener, useCapture);
    }
                   
    public function willTrigger(type:String):Boolean {
        return dispatcher.willTrigger(type);
    }
}




[ X ]Waarom in het Engels?
Sommige inhoud van de Naslaggids voor ActionScript 3.0 staat in het Engels

Niet alle onderdelen van de Naslaggids voor ActionScript 3.0 zijn in alle talen vertaald. Wanneer een taalelement niet is vertaald, wordt het in het Engels weergegeven. Zo is de klasse ga.controls.HelpBox niet in elke taal vertaald. In de Nederlandse versie van de naslaggids wordt de klasse ga.controls.HelpBox bijvoorbeeld in het Engels weergegeven.