Referenshandbok för ActionScript® 3.0 i Adobe® Flash®-plattformen
Hem  |  Dölj paket och klasslista |  Paket  |  Klasser  |  Nyheter  |  Index  |  Bilagor  |  Varför på engelska?
Filter: Hämtar data från servern ...
Hämtar data från servern ...
flash.events 

EventDispatcher  - AS3

Paketflash.events
Klasspublic class EventDispatcher
ArvEventDispatcher Inheritance Object
Implementerar IEventDispatcher
Underklasser AbstractEntityMetadata, AbstractInvoker, AbstractServiceWrapper, Accelerometer, AdvancedStyleClient, AnimatorBase, ApplicationUpdater, ApplicationUpdaterUI, ArrayList, AssetHandlerRegistry, AssetHandlerRegistry, AssetManager, AssetManager, AssetModel, AsyncToken, AudioDeviceManager, AuditManager, AutomationManager, AxisBase, AXMToolPopUpDropDownController, BaseAssetHandler, BaseFilter, BaseListData, BaseModuleInstance, BitmapFill, CacheDataDescriptor, CallResponder, Camera, CameraRoll, CameraUI, CategoryHandler, CategoryManager, CategoryModel, CCRDefaultActionHandler, Channel, ChannelSet, ChartItem, ConditionAssignmentModel, ConditionHandler, ConstraintColumn, ConstraintRow, ContainerLayoutAssignmentModel, ContentCache, ContentRequest, ContentSearchManager, Context3D, CSSStyleDeclaration, DataDictionaryHandler, DataDictionaryInstance, DataDictionaryInstanceModel, DataDictionaryManager, DataElementModel, DatagramSocket, DataProvider, DataServiceWrapper, DataStore, DataTransform, DDIModelVariableResolver, DEPDictionaryModel, DesignLayer, DeviceRotation, DisplayLayer, DisplayObject, DNSResolver, DRMManager, DropDownController, EditorConfigurationManager, Effect, EffectInstance, EffectManager, ExpressionEvaluationService, ExtensionContext, ExtensionsConfigManager, FieldAssignmentModel, FieldInstance, File, FileReference, FileReferenceList, FileStream, FileUploadManager, FlexClient, FlexNativeMenu, FlexNativeMenuAutomationImpl, FocusManager, FormConnector, FragmentLayoutHandler, FrameLabel, GameInput, GameInputControl, Geolocation, GradientBase, GradientEntry, GraphicElement, GridColumn, HierarchicalCollectionView, HierarchicalCollectionViewCursor, HierarchicalData, Icon, IKManager, IKMover, ImageHandler, IME, ImportExportManager, InteractionStateDetector, InvokeParams, LayoutHandler, LayoutManager, LayoutRendererBase, LeafNode, LetterHandler, LetterInstance, ListAssignmentModel, ListHandler, LoaderBase, LoaderInfo, LocalConnection, Locale, LocalizeableMessage, LogLogger, MediaElement, MediaFactory, MediaPromise, MediaTraitBase, MessageAgent, MessageBatch, MessageChannel, Metadata, Microphone, MockServiceProvider, Model, Model, ModuleAssignmentModel, ModuleBase, NativeApplication, NativeMenu, NativeMenuItem, NativeProcess, NativeWindow, NetConnection, NetConnectionFactoryBase, NetGroup, NetMonitor, NetStream, NetStreamMetricsBase, NetStreamPlayOptions, NetStreamSwitcher, NetStreamSwitchManagerBase, NetworkInfo, PanelManager, PermissionBasedAssetHandler, PermissionBasedAssetHandler, PresentationModel, PrintJob, ProcessManager, Project, ProLoaderInfo, RadioButtonGroup, RadioButtonGroup, RadioButtonGroup, RemoteNotifier, RSLInfo, RSLPreloader, Screen, SearchManager, SecurityManager, ServerSocket, Service, ServiceMonitor, ServiceTracker, ShaderJob, SharedObject, SimpleFunctionMapper, SimpleVariableResolver, Socket, SolidColor, SolidColorStroke, Sort, SortField, Sound, SoundChannel, SQLConnection, SQLStatement, Stage3D, StageText, StageVideo, StageWebView, State, StorageVolumeInfo, StreamingConnectionHandler, StyleSheet, SWFBridgeGroup, SwfConnector, SystemUpdater, TargetAreaAssignmentModel, TargetInstance, Task, TextContainerManager, TextHandler, TextureBase, Timer, ToolTipManager, TraitEventDispatcher, TransformOffsets, Transition, TransitionManager, Tween, Tween, UIComponentAutomationImpl, UIMovieClipAutomationImpl, UncaughtErrorEvents, URLFilePromise, URLLoader, URLStream, Validator, VariableAssignmentModel, VariableInstance, VariableModel, ViewTransitionBase, Worker, XFADataStream, XMLDataLoader, XMLSignatureValidator, XMLSocket

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Klassen EventDispatcher är basklassen för alla klasser som skickar händelser. Klassen EventDispatcher implementerar gränssnittet IEventDispatcher och är basklass för klassen DisplayObject. Klassen EventDispatcher tillåter alla objekt i visningslistan att bli händelsemål och tack vare detta använda metoderna för gränssnittet IEventDispatcher.

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.

Visa exemplen



Publika egenskaper
 EgenskapDefinieras med
 Inheritedconstructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans.
Object
Publika metoder
 MetodDefinieras med
  
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
 Inherited
Anger om det finns en egenskap angiven för ett objekt.
Object
 Inherited
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter.
Object
 Inherited
Anger om den angivna egenskapen finns och är uppräkningsbar.
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Tar bort en avlyssnare från EventDispatcher-objektet.
EventDispatcher
 Inherited
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder.
Object
 Inherited
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner.
Object
 Inherited
Returnerar det angivna objektets strängbeteckning.
Object
 Inherited
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ändelser
 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
Konstruktordetaljer

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.

Parametrar
target: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.
Metoddetaljer

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 useWeakReference till true för medlemsfunktioner på klassnivå utan att de skräpsamlas. Om du anger useWeakReference till true för en avlyssnare som är en inkapslad funktion kommer funktionen att skräpsamlas och inte längre vara beständig. Om du skapar referenser till den inre funktionen (sparar den i en annan variabel) skräpsamlas den inte utan förblir beständig.


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.

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

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

Returnerar
Boolean — Värdet true om en avlyssnare för den angivna typen kommer att aktiveras, annars false.
Händelsedetaljer

activate

Händelse
Typ av händelseobjekt: 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.

Konstanten ACTIVATE 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:

EgenskapVärde
bubblesfalse
cancelablefalse; det finns inget standardbeteende att avbryta.
currentTargetDet objekt som aktivt behandlar Event-objektet med en händelseavlyssnare.
targetAlla DisplayObject-instanser med en avlyssnare registrerad för activate-händelsen.

Relaterade API-element

deactivate

Händelse  
Typ av händelseobjekt: 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:

EgenskapVärde
bubblesfalse
cancelablefalse; det finns inget standardbeteende att avbryta.
currentTargetDet objekt som aktivt behandlar Event-objektet med en händelseavlyssnare.
targetAlla DisplayObject-instanser med en avlyssnare registrerad för deactivate-händelsen.

Relaterade API-element

EventDispatcherExample.as

I följande exempel används klasserna 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:
  1. Konstruktorn av EventDispatcherExample skapar en lokal variabel dispatcher och skickar den till en ny CustomDispatcher-instans.
  2. Inuti CustomDispatcher ställs en sträng in så att händelsen får namnet action och doAction()-metoden deklareras. När den anropas skapar den här metoden händelsen action och skickar den med EventDispatcher.dispatchEvent().
  3. Egenskapen dispatcher används sedan för att lägga till action-händelseavlyssnaren och den associerade mottagarmetoden actionHandler() som enkelt skriver ut information om händelsen när den skickas.
  4. Metoden doAction() anropas och action-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));
    }
}




[ X ]Varför på engelska?
Innehåll i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen är på engelska

Det är inte alla delar av Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen som översätts till alla språk. Om ett språkelement inte översätts visas det på engelska. Klassen ga.controls.HelpBox översätts till exempel inte till något språk. I den svenska versionen av referenshandboken visas därför klassen ga.controls.HelpBox på engelska.