Referência do ActionScript® 3.0 para Adobe® Flash® Platform
Início  |  Ocultar listas de Pacotes e Classes |  Pacotes  |  Classes  |  Novidades  |  Índice  |  Apêndices  |  Por que inglês?
Filtros: Recuperando dados do servidor...
Recuperando dados do servidor...
flash.events 

IEventDispatcher  - AS3

Pacoteflash.events
Interfacepublic interface IEventDispatcher
Implementadores 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

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

A interface IEventDispatcher define métodos para adicionar ou remover ouvintes de eventos, verifica se tipos de ouvinte de evento específicos estão registrados, além de enviar eventos.

Destinos de eventos são uma parte importante do modelo de eventos do Flash® Player e do Adobe AIR. O destino de evento funciona como o ponto focal de como eventos fluem pela hierarquia da lista de exibição. Quando ocorre um evento como um clique do mouse ou um pressionamento de tecla, um objeto de evento é despachado para o fluxo de eventos a partir da raiz da lista de exibição. O objeto do evento faz uma viagem completa até o destino do evento, que conceitualmente está dividido em três fases: a fase de captura inclui a viagem da raiz até o último nó antes do nó do destino do evento; a fase de destino inclui apenas o nó de destino do evento; e a fase de bolha inclui qualquer nó subsequente encontrado na viagem de volta até a raiz da lista de exibição.

Em geral, o modo mais fácil para que uma classe definida pelo usuário obtenha capacidades de envio de evento é ampliar o EventDispatcher. Se isso for impossível (ou seja, se a classe já estiver ampliando outra classe), você poderá, em vez disso, implementar a interface IEventDispatcher, criar um membro EventDispatcher e gravar junções simples para direcionar chamadas no EventDispatcher agregado.

Veja os exemplos



Métodos públicos
 MétodoDefinido por
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento.
IEventDispatcher
  
Envia um evento para o fluxo de eventos.
IEventDispatcher
  
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento.
IEventDispatcher
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Remove um ouvinte do objeto EventDispatcher.
IEventDispatcher
  
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado.
IEventDispatcher
Detalhes do método

addEventListener

()método
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. Você pode registrar ouvintes de eventos em todos os nós da lista de exibição de um tipo específico de evento, fase e prioridade.

Depois de registrar um ouvinte de evento com êxito, não será possível alterar a respectiva prioridade por meio de chamadas adicionais para o addEventListener(). Para alterar a prioridade de um ouvinte, chame primeiramente o removeEventListener(). Em seguida, você poderá registrar o ouvinte novamente com o novo nível de prioridade.

Depois que o ouvinte for registrado, chamadas subsequentes para o addEventListener() com um valor diferente para type ou useCapture resultarão na criação de um registro de ouvinte separado. Por exemplo, se você primeiro registrar um ouvinte com o useCapture definido como true, ele escutará apenas durante a fase de captura. Se você chamar o addEventListener() novamente, usando o mesmo objeto de ouvinte, mas com o useCapture definido como false, você terá dois ouvintes distintos: um que escuta durante a fase de captura e outro que escuta durante as fases de destino e de bubbling.

Você não pode registrar um ouvinte de evento apenas para a fase de destino ou a fase de bubbling. Essas fases são emparelhadas durante o registro porque o bubbling se aplica apenas aos ancestral do nó-alvo.

Quando você não precisar ais de um ouvinte de evento, remova-o, chamando o EventDispatcher.removeEventListener(); do contrário, poderão ocorrer problemas de memória. Objetos com ouvintes de eventos registrados não são removidos automaticamente da memória porque o coletor de lixo não remove objetos que ainda têm referências.

Copiar uma ocorrência do EventDispatcher não copia os ouvintes de eventos a ele anexados. (Se o seu recém-criado nó precisar de um ouvinte de evento, anexe o ouvinte após criar o nó). Entretanto, se você mover uma ocorrência do EventDispatcher, os ouvintes de evento anexados se movimentarão com ele.

Se o ouvinte de evento estiver sendo registrado em um nó enquanto um evento também estiver sendo processado nesse nó, o ouvinte de evento não será disparado durante a fase atual, mas poderá ser disparado durante uma fase posterior no fluxo de eventos, como a fase de bubbling.

Se um ouvinte de evento for removido de um nó enquanto um evento estiver sendo processado no nó, ele ainda será disparado pelas ações atuais. Depois de removido, o ouvinte de evento nunca mais é chamado novamente (a menos que ele seja registrado mais uma vez para processamento futuro).

Parâmetros

type:String — O tipo de evento.
 
listener:Function — A função de ouvinte que processa o evento. Esta função deve aceitar um objeto event como seu único parâmetro e não deve retornar nada, como mostra este exemplo:

function(evt:Event):void

A função pode ter qualquer nome.
 
useCapture:Boolean (default = false) — Determina se o ouvinte trabalha na fase de captura ou nas fases de destino e bubbling. Se useCapture for definido como true, o ouvinte processará o evento apenas durante a fase de captura e não na fase de destino nem de bubbling. Se useCapture for false, o ouvinte processará o evento apenas durante a fase de destino ou de bubbling. Para ouvir o evento em todas as três fases, chame o addEventListener() duas vezes, uma vez com o useCapture definido como true, e novamente, com o useCapture definido como false.
 
priority:int (default = 0) — O nível de prioridade do ouvinte de evento. Prioridades são designadas por um número inteiro de 32 bits. Quanto mais alto o número, maior a prioridade. Todos os ouvintes com prioridade n são processados antes dos ouvintes com prioridade n-1. Se dois ou mais ouvintes compartilham a mesma prioridade, eles são processados pela ordem segundo a qual foram adicionados. A prioridade padrão é 0.
 
useWeakReference:Boolean (default = false) — Determina se a referência ao ouvinte é forte ou fraca. Uma referência forte (a padrão) impede que o ouvinte seja coletado como lixo. Uma referência fraca não impede.

Funções de membro de nível de classe não estão sujeitas à coleta de lixo, portanto, você pode definir useWeakReference como true para funções de membro de nível de classe sem sujeitá-las à coleta de lixo. Se você definir useWeakReference como true para um ouvinte que seja uma função interna aninhada, a função será sujeita à coleta de lixo e não mais será persistente. Se você criar referências à função interna (salve-a em outra variável), então ela não ficará sujeita à coleta de lixo e permanece persistente.

dispatchEvent

()método 
public function dispatchEvent(event:Event):Boolean

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Envia um evento para o fluxo de eventos. O destino de evento é o objeto EventDispatcher no qual o método dispatchEvent() é chamado.

Parâmetros

event:Event — O objeto event despachado para o fluxo de eventos.

Retorna
Boolean — Um valor de true a menos que o preventDefault() seja chamado no evento, caso em que ele retornará false.

hasEventListener

()método 
public function hasEventListener(type:String):Boolean

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. Isto permite determinar quando um objeto EventDispatcher alterou o tratamento de um tipo de evento na hierarquia de fluxo de eventos. Para determinar se um tipo de evento específico efetivamente dispara um ouvinte de evento, utilize o IEventDispatcher.willTrigger().

A diferença entre o hasEventListener() e o willTrigger() é que o hasEventListener() examina só o objeto a que ele pertence, ao passo que o willTrigger() examina o fluxo de eventos inteiro para o evento especificado pelo parâmetro type.

Parâmetros

type:String — O tipo de evento.

Retorna
Boolean — Um valor true se um ouvinte do tipo especificado for registrado; do contrário, será false.

Elementos da API relacionados

removeEventListener

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

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Remove um ouvinte do objeto EventDispatcher. Se não existir um ouvinte correspondente registrado com o objeto EventDispatcher, uma chamada para esse método não terá efeito.

Parâmetros

type:String — O tipo de evento.
 
listener:Function — O objeto de ouvinte a remover.
 
useCapture:Boolean (default = false) — Especifica se o ouvinte foi registrado na fase de captura ou nas fases de destino e bubbling. Se o ouvinte foi registrado para a fase de captura e as fases de destino e bubbling, duas chamadas para o removeEventListener() serão necessárias para removê-las: uma chamada com o useCapture definido como true, e outra, com o useCapture definido como false.

willTrigger

()método 
public function willTrigger(type:String):Boolean

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. Este método retorna true se um ouvinte de evento for disparado durante qualquer fase do fluxo de eventos quando um evento do tipo especificado for despachado para esse objeto EventDispatcher ou para algum de seus descendentes.

A diferença entre o hasEventListener() e o willTrigger() é que o hasEventListener() examina só o objeto a que ele pertence, ao passo que o willTrigger() examina o fluxo de eventos inteiro para o evento especificado pelo parâmetro type.

Parâmetros

type:String — O tipo de evento.

Retorna
Boolean — Um valor true se um ouvinte do tipo especificado será disparado; do contrário, será false.
IEventDispatcherExample.as

O exemplo seguinte utiliza as classes de amostra IEventDispatcherExample e DecoratedDispatcher para mostrar como a classe IEventDispatcher pode ser implementada e utilizada. O exemplo realiza isso implementando cada método do DecoratedDispatcher da mesma maneira no EventDispatcher. Dentro do construtor do IEventDispatcherExample, uma nova ocorrência (com o nome decorDispatcher) da classe DecoratedDispatcher é construída, e a variável decorDispatcher é utilizada para chamar o addEventListener() com o evento personalizado doSomething, que é então controlado pelo didSomething(), que imprime uma linha de texto usando o 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 ]Por que inglês?
O conteúdo na Referência do ActionScript 3.0 aparece em inglês

Nem todas as partes da Referência do ActionScript 3.0 estão traduzidas em todos os idiomas. Quando um elemento de um idioma não está traduzido, ele é exibido em inglês. Por exemplo, a classe ga.controls.HelpBox não está traduzida em nenhum idioma. Por isso, na versão da referência em português do Brasil, a classe ga.controls.HelpBox é exibida em inglês.