Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
I target di eventi sono un componente importante del modello di evento Flash® Player e Adobe AIR. 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 o l'applicazione AIR inviano 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), potete invece implementare l'interfaccia IEventDispatcher, creare un membro di EventDispatcher e scrivere semplici agganci per instradare le chiamate alla classe EventDispatcher aggregata.
Altre informazioni
Metodo | Definito da | ||
---|---|---|---|
EventDispatcher(target:IEventDispatcher = null)
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 | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
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 |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. | EventDispatcher | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. | EventDispatcher |
EventDispatcher | () | Funzione di costruzione |
public function EventDispatcher(target:IEventDispatcher = null)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, utilizzate questa funzione di costruzione per aggregare un'istanza della classe EventDispatcher.
Parametritarget: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 utilizzate questo parametro nei casi semplici in cui una classe estende la classe EventDispatcher.
|
addEventListener | () | metodo |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento. Potete 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 potete modificarne la priorità mediante chiamate aggiuntive a addEventListener()
. Per modificare la priorità di un listener dovete chiamare innanzitutto removeListener()
. In seguito potete registrare nuovamente il listener con il nuovo livello di priorità.
Tenete 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 registrate un listener inizialmente con useCapture
impostato su true
, l'intercettazione avviene solo durante la fase di cattura. Se chiamate di nuovo addEventListener()
utilizzando lo stesso oggetto listener ma impostando useCapture
su false
, ottenete due listener separati: uno rileva gli eventi durante la fase di cattura e l'altro durante la fasi target e di bubbling.
Non potete 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, rimovetelo con una chiamata a removeEventListener()
per evitare problemi di memoria. I listener di eventi non vengono eliminati automaticamente dalla memoria perché il garbage collector non rimuove il listener fintantoché esiste l'oggetto che effettua l'invio (a meno che il parametro useWeakReference
non sia impostato su true
).
Se copiate un'istanza EventDispatcher, i listener di eventi associati all'istanza non vengono copiati (se un nodo appena creato necessita di un listener di eventi, dovete associarlo dopo avere creato il nodo). Se invece spostate 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 Event 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, chiamate due volte 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 |
Genera
ArgumentError — Il listener specificato non è una funzione.
|
Altre informazioni
dispatchEvent | () | metodo |
public function dispatchEvent(event:Event):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
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 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, utilizzate 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.
|
Boolean — Un valore true se è stato registrato un listener del tipo specificato; false in caso contrario.
|
Elementi API correlati
removeEventListener | () | metodo |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 .
|
Altre informazioni
willTrigger | () | metodo |
public function willTrigger(type:String):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
Boolean — Un valore true se viene attivato un listener del tipo specificato; false in caso contrario.
|
activate | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.ACTIVATE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. Questo è un evento di trasmissione e ciò significa che viene inviato da tutti gli oggetti EventDispatcher con un listener registrato per questo evento. Per ulteriori informazioni sugli eventi di trasmissione, vedete la classe DisplayObject.
La costanteACTIVATE
definisce il valore della proprietà type
di un evento activate
.
Nota: questo evento non dispone di una "fase di cattura" né di una "fase di bubbling"; ciò significa che i listener di eventi devono essere aggiunti direttamente a qualsiasi target potenziale, sia che il target si trovi o meno nell'elenco di visualizzazione.
I dispositivi AIR per TV non inviano mai automaticamente questo evento. È possibile, tuttavia, inviarlo manualmente.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | Qualunque istanza DisplayObject con un listener registrato per l'evento activate . |
Elementi API correlati
deactivate | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.DEACTIVATE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. Questo è un evento di trasmissione e ciò significa che viene inviato da tutti gli oggetti EventDispatcher con un listener registrato per questo evento. Per ulteriori informazioni sugli eventi di trasmissione, vedete la classe DisplayObject.
La costanteEvent.DEACTIVATE
definisce il valore della proprietà type
di un oggetto evento deactivate
.
Nota: questo evento non dispone di una "fase di cattura" né di una "fase di bubbling"; ciò significa che i listener di eventi devono essere aggiunti direttamente a qualsiasi target potenziale, sia che il target si trovi o meno nell'elenco di visualizzazione.
I dispositivi AIR per TV non inviano mai automaticamente questo evento. È possibile, tuttavia, inviarlo manualmente.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | Qualunque istanza DisplayObject con un listener registrato per l'evento deactivate . |
Elementi API correlati
EventDispatcherExample
e CustomDispatcher
, una sottoclasse di EventDispatcher
, per mostrare come viene creato e inviato un evento personalizzato. L'esempio esegue le operazioni seguenti:
- La funzione di costruzione di
EventDispatcherExample
crea una variabile localedispatcher
e la assegna a una nuova istanza CustomDispatcher. - All'interno di
CustomDispatcher
viene impostata una stringa che definisce il nome dell'evento comeaction
e viene dichiarato il metododoAction()
. Quando viene chiamato, questo metodo crea l'eventoaction
e lo invia utilizzandoEventDispatcher.dispatchEvent()
. - Viene quindi utilizzata la proprietà
dispatcher
per aggiungere il listener di eventiaction
e il metodo subscriberactionHandler()
associato, il quale stampa semplicemente le informazioni relative all'evento quando questo viene inviato. - Viene quindi richiamato il metodo
doAction()
che invia l'eventoaction
.
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, 02:44 PM Z