Pacchettoflash.events
Classepublic class EventDispatcher
EreditarietàEventDispatcher Inheritance Object
Implementa IEventDispatcher
Sottoclassi Animator, Camera, ContextMenu, ContextMenuItem, DataProvider, DisplayObject, FileReference, FileReferenceList, IME, LoaderInfo, LocalConnection, Locale, Microphone, NetConnection, NetStream, PrintJob, RadioButtonGroup, SharedObject, Socket, Sound, SoundChannel, StyleSheet, Timer, Transition, TransitionManager, Tween, URLLoader, URLStream, XMLSocket

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe EventDispatcher consente di implementare l'interfaccia IEventDispatcher ed è la classe di base per la classe DisplayObject. La classe EventDispatcher consente a qualsiasi oggetto dell'elenco di visualizzazione di essere un target di eventi e, in quanto tale, di utilizzare i metodi dell'interfaccia IEventDispatcher.

I target di eventi sono un componente importante del modello di evento Flash® Player. Il target di eventi funge da punto focale per il modo in cui gli eventi scorrono attraverso la gerarchia dell'elenco di visualizzazione. Quando si verifica un evento come un clic del mouse o la pressione di un tasto, Flash Player invia un oggetto evento nel flusso di eventi dalla radice dell'elenco di visualizzazione. L'oggetto evento avanza all'interno dell'elenco di visualizzazione fino a raggiungere il target dell'evento; a questo punto inizia il percorso di ritorno nell'elenco di visualizzazione. Questo percorso di andata e ritorno fino al target dell'evento è suddiviso concettualmente in tre fasi: la fase di cattura comprende il percorso dalla radice all'ultimo nodo prima di quello del target dell'evento, la fase target comprende solo il nodo del target dell'evento e la fase di bubbling comprende tutti i nodi successivi incontrati nel percorso di ritorno alla radice dell'elenco di visualizzazione.

In generale, il metodo più semplice per consentire a una classe definita dall'utente di acquisire funzioni di invio degli eventi è l'estensione di EventDispatcher. Se questo è impossibile (ovvero se la classe estende già un'altra classe) è possibile invece implementare l'interfaccia IEventDispatcher, creare un membro di EventDispatcher e scrivere semplici agganci per instradare le chiamate alla classe EventDispatcher aggregata.

Vedere gli esempi



Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
Aggrega un'istanza della classe EventDispatcher.
EventDispatcher
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento.
EventDispatcher
  
Invia un evento nel flusso di eventi.
EventDispatcher
  
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
  
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
   Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
   Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
Descrizione della funzione di costruzione
EventDispatcher()Funzione di costruzione
public function EventDispatcher(target:IEventDispatcher = null)

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Aggrega un'istanza della classe EventDispatcher.

La classe EventDispatcher viene in genere utilizzata come classe base e, pertanto, la maggior parte degli sviluppatori non ha bisogno di utilizzare questa funzione di costruzione. Gli sviluppatori avanzati che implementano l'interfaccia IEventDispatcher devono invece utilizzare questa funzione di costruzione. Se non è possibile estendere la classe EventDispatcher e occorre invece implementare l'interfaccia IEventDispatcher, utilizzare questa funzione di costruzione per aggregare un'istanza della classe EventDispatcher.

Parametri
target:IEventDispatcher (default = null) — L'oggetto target degli eventi inviati all'oggetto EventDispatcher. Questo parametro viene utilizzato quando l'istanza EventDispatcher viene aggregata da una classe che implementa IEventDispatcher; è necessario per consentire all'oggetto contenitore di essere il target degli eventi. Non utilizzare questo parametro nei casi semplici in cui una classe estende la classe EventDispatcher.
Descrizione dei metodi
addEventListener()metodo
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento. È possibile registrare listener di eventi in tutti i nodi dell'elenco di visualizzazione per un tipo di evento, una fase e una priorità specifiche.

Una volta registrato un listener di eventi, non è possibile modificarne la priorità mediante chiamate aggiuntive a addEventListener(). Per modificare la priorità di un listener è necessario chiamare innanzitutto removeListener(). In seguito è possibile registrare nuovamente il listener con il nuovo livello di priorità.

Tenere presente che, dopo la registrazione del listener, le successive chiamate a addEventListener() con un valore type o useCapture diverso determinano la creazione di un'altra registrazione per il listener. Ad esempio, se un listener viene registrato inizialmente con useCapture impostato su true, l'intercettazione avviene solo durante la fase di cattura. Se si chiama di nuovo addEventListener() utilizzando lo stesso oggetto listener ma impostando useCapture su false, si ottengono due listener separati: uno rileva gli eventi durante la fase di cattura e l'altro durante la fasi target e di bubbling.

Non è possibile registrare un listener di eventi solo per la fase target o per la fase di bubbling. Queste fasi vengono accoppiate durante la registrazione perché la propagazione è valida solo per gli antenati del nodo target.

Se il listener di eventi non è più necessario, rimuoverlo con una chiamata a removeEventListener() per evitare problemi di memoria. Gli oggetti con listener di eventi registrati non vengono eliminati automaticamente dalla memoria perché il garbage collector non rimuove gli oggetti ancora dotati di riferimenti.

Se si copia un'istanza EventDispatcher, i listener di eventi associati all'istanza non vengono copiati (se un nodo appena creato necessita di un listener di eventi, è necessario associarlo dopo avere creato il nodo). Se invece si sposta un'istanza EventDispatcher, insieme a questa vengono spostati anche i listener di eventi associati.

Se il listener di eventi viene registrato su un nodo mentre questo sta elaborando un evento, il listener di eventi non viene attivato durante la fase corrente ma può esserlo durante una fase successiva del flusso di eventi, ad esempio la fase di bubbling.

Se un listener di eventi viene rimosso da un nodo mentre questo sta elaborando un evento, il listener continua a essere attivato dalle azioni in corso. Dopo che è stato rimosso, il listener di eventi non viene più richiamato (a meno che non venga registrato nuovamente per elaborazioni future).

Parametri

type:String — Il tipo di evento.
 
listener:Function — La funzione listener che elabora l'evento. Questa funzione deve accettare un oggetto evento come unico parametro e non restituire alcun valore, come mostra l'esempio che segue:

function(evt:Event):void

La funzione può avere qualunque nome.

 
useCapture:Boolean (default = false) — Determina se il listener funziona nella fase di cattura o nelle fasi target e di bubbling. Se useCapture è impostato su true, il listener elabora l'evento solo durante la fase di cattura e non nella fase target o di bubbling. Se useCapture è impostato su false, il listener elabora l'evento solo durante la fase target o di bubbling. Per consentire l'intercettazione dell'evento in tutte e tre le fasi, effettuare una doppia chiamata a addEventListener, una volta con useCapture impostato su true e un'altra volta con useCapture impostato su false.
 
priority:int (default = 0) — Il livello di priorità del listener di eventi. La priorità è indicata da un numero intero a 32 bit con segno. Più alto è il numero, più alta è la priorità. Tutti i listener con priorità n vengono elaborati prima dei listener con priorità n-1. Se due o più listener hanno la stessa priorità, l'elaborazione avviene secondo l'ordine in cui sono stati aggiunti. La priorità predefinita è 0.
 
useWeakReference:Boolean (default = false) — Determina se il riferimento al listener è forte o debole. Un riferimento forte (predefinito) evita che il listener venga sottoposto al processo di garbage collection, un riferimento debole no.

Le funzioni dei membri a livello di classe non sono soggette a garbage collection, pertanto è possibile impostare useWeakReference su true. Se si imposta useWeakReference su true per un listener che è una funzione nidificata, la funzione viene sottoposta a garbage collection e non è più persistente. Se si creano riferimenti alla funzione nidificata (la si salva in un'altra variabile), questa non viene sottoposta a garbage collection e rimane persistente.


Genera
ArgumentError — Il listener specificato non è una funzione.

Vedere anche

dispatchEvent()metodo 
public function dispatchEvent(event:Event):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Invia un evento nel flusso di eventi. Il target dell'evento è l'oggetto EventDispatcher su cui viene chiamato il metodo dispatchEvent().

Parametri

event:Event — L'oggetto evento inviato al flusso di eventi. Se l'evento viene inviato nuovamente, viene creato automaticamente un clone dell'evento. Dopo l'invio, la proprietà target dell'evento non può essere modificata e pertanto per poter inviare nuovamente l'evento è necessario crearne una nuova copia.

Restituisce
Boolean — Un valore true se l'evento è stato inviato correttamente. Un valore false indica un esito negativo o il fatto che sull'evento è stato chiamato preventDefault().

Genera
Error — È stato raggiunto il limite di ricorsività dell'invio dell'evento.
hasEventListener()metodo 
public function hasEventListener(type:String):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. Questo consente di determinare in quale punto un oggetto EventDispatcher ha alterato la gestione di un tipo di evento nella gerarchia del flusso di eventi. Per determinare se un tipo di evento specifico attiva effettivamente un listener di eventi, utilizzare willTrigger().

La differenza tra hasEventListener() e willTrigger() consiste nel fatto che hasEventListener() esamina solo l'oggetto a cui appartiene, mentre willTrigger() esamina tutto il flusso di eventi relativo all'evento specificato dal parametro type.

Quando hasEventListener() viene chiamato da un oggetto LoaderInfo vengono considerati solo i listener a cui il chiamante può accedere.

Parametri

type:String — Il tipo di evento.

Restituisce
Boolean — Un valore true se è stato registrato un listener del tipo specificato; false in caso contrario.

Vedere anche

removeEventListener()metodo 
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Rimuove un listener dall'oggetto EventDispatcher. Se non esiste un listener corrispondente registrato nell'oggetto EventDispatcher, la chiamata a questo metodo non ha alcun effetto.

Parametri

type:String — Il tipo di evento.
 
listener:Function — L'oggetto listener da rimuovere.
 
useCapture:Boolean (default = false) — Specifica se il listener è stato registrato per la fase di cattura o per le fasi target e di bubbling. Se il listener è stato registrato sia per la fase di cattura che per quelle target e di bubbling, per eliminarle entrambe sono necessarie due chiamate a removeEventListener(), una con useCapture() impostato su true e un'altra con useCapture() impostato su false.

Vedere anche

willTrigger()metodo 
public function willTrigger(type:String):Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. Questo metodo restituisce true se durante qualsiasi fase del flusso di eventi viene attivato un listener di eventi quando un evento del tipo specificato viene inviato all'oggetto EventDispatcher o a uno qualsiasi dei suoi discendenti.

La differenza tra il metodo hasEventListener() e il metodo willTrigger() consiste nel fatto che hasEventListener() esamina solo l'oggetto a cui appartiene, mentre willTrigger() esamina tutto il flusso di eventi relativo all'evento specificato dal parametro type.

Quando willTrigger() viene chiamato da un oggetto LoaderInfo vengono considerati solo i listener a cui il chiamante può accedere.

Parametri

type:String — Il tipo di evento.

Restituisce
Boolean — Un valore true se viene attivato un listener del tipo specificato; false in caso contrario.
Descrizione degli eventi
activate Evento
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.ACTIVATE

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.

Definisce il valore della proprietà type di un oggetto evento activate.

Nota: questo evento non è soggetto a una "fase di cattura" e viene inviato direttamente al target, sia che il target si trovi nell'elenco di visualizzazione o meno.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetQualsiasi istanza DisplayObject con un listener registrato per l'evento ACTIVATE.
deactivate Evento  
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.DEACTIVATE

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.

Definisce il valore della proprietà type di un oggetto evento deactivate.

Nota: questo evento non è soggetto a una "fase di cattura" e viene inviato direttamente al target, sia che il target si trovi nell'elenco di visualizzazione o meno.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetQualsiasi istanza DisplayObject con un listener registrato per l'evento DEACTIVATE.
Esempi Come utilizzare gli esempi
EventDispatcherExample.as

Nell'esempio seguente vengono utilizzate le classi EventDispatcherExample e CustomDispatcher, una sottoclasse di EventDispatcher, per mostrare come viene creato e inviato un evento personalizzato. L'esempio esegue le operazioni seguenti:
  1. La funzione di costruzione di EventDispatcherExample crea una variabile locale dispatcher e la assegna a una nuova istanza CustomDispatcher.
  2. All'interno di CustomDispatcher viene impostata una stringa che definisce il nome dell'evento come action e viene dichiarato il metodo doAction(). Quando viene chiamato, questo metodo crea l'evento action e lo invia utilizzando EventDispatcher.dispatchEvent().
  3. Viene quindi utilizzata la proprietà dispatcher per aggiungere il listener di eventi action e il metodo subscriber actionHandler() associato, il quale stampa semplicemente le informazioni relative all'evento quando questo viene inviato.
  4. Viene quindi richiamato il metodo doAction() che invia l'evento action.
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));
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/events/EventDispatcher.html