Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, o Flash Player ou o aplicativo AIR envia um objeto de evento para o fluxo de eventos a partir da raiz da lista de exibição. O objeto de evento então percorre seu caminho pela lista de exibição até alcançar o destino de evento, ponto em que começa seu percurso de volta pela lista de exibição. Essa viagem completa até o destino de evento é dividida conceitualmente em três fases: a fase de captura engloba a jornada da raiz do último nó antes do nó do destino de evento. A fase de destino engloba apenas o nó de destino de evento, e a fase de bubbling engloba todos os nós subsequentes encontrados na viagem de retorno 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.
Método | Definido por | ||
---|---|---|---|
EventDispatcher(target:IEventDispatcher = null)
Agrega uma ocorrência da classe EventDispatcher. | EventDispatcher | ||
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. | EventDispatcher | ||
Envia um evento para o fluxo de eventos. | EventDispatcher | ||
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object | ||
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher |
Evento | Resumo | Definido por | ||
---|---|---|---|---|
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher |
EventDispatcher | () | Construtor |
public function EventDispatcher(target:IEventDispatcher = null)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Agrega uma ocorrência da classe EventDispatcher.
A classe EventDispatcher geralmente é utilizada como uma classe base, o que significa que a a maioria dos desenvolvedores não precisam usar esta função de construtor. No entanto, desenvolvedores avançados que estejam implementado a interface IEventDispatcher precisam utilizar este construtor. Se você não conseguir ampliar a classe EventDispatcher e precisar implementar a interface IEventDispatcher, utilize este construtor para agregar uma ocorrência da classe EventDispatcher.
Parâmetrostarget:IEventDispatcher (default = null ) — O objeto de destino para eventos despachados para o objeto EventDispatcher. Este parâmetro é usado quando a ocorrência EventDispatcher é agregada por uma classe que implementa o IEventDispatcher; ele é necessário para que o objeto contido possa ser o destino de eventos. Não utilize este parâmetro em casos simples nos quais uma classe amplia o EventDispatcher.
|
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 removeListener()
. Em seguida, você poderá registrar o ouvinte novamente com o novo nível de prioridade.
Tenha em mente que, após o ouvinte ser registrado, chamadas subsequentes para o addEventListener()
com um valor type
ou useCapture
diferente 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.
Se você não precisar mais de um ouvinte de evento, remova-o, chamando o removeEventListener()
; do contrário, poderão ocorrer problemas de memória. Os ouvintes de evento não são retirados automaticamente da memória porque o coletor de lixo não remove o ouvinte enquanto o objeto de despacho existe (a menos que o parâmetro useWeakReference
seja definido para true
).
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 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 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. A prioridade é designada por um número inteiro de 32 bits sem sinal. 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 |
Lança
ArgumentError — O ouvinte especificado não é uma função.
|
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 que é despachado para o fluxo de eventos. Se o evento estiver sendo redespachado, um clone desse evento será criado automaticamente. Depois que um evento é despachado, sua propriedade target não pode ser alterada, portanto, você pode criar uma nova cópia do evento para reenviar para trabalho.
|
Boolean — Um valor true se o evento foi despachado com sucesso. Um valor false indica falha ou que o preventDefault() foi chamado no evento.
|
Lança
Error — O limite de recursão de envio de eventos foi atingido.
|
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 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
.
Quando o hasEventListener()
é chamado de um objeto LoaderInfo, apenas os ouvintes que o chamador pode acessar são considerados.
Parâmetros
type:String — O tipo de evento.
|
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 as fases de destino e de bubbling, duas chamadas para o removeEventListener() serão necessárias para remover as duas, uma chamada com o useCapture() definido como true e outra chamada 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 método hasEventListener()
e o willTrigger()
é que o hasEventListener()
examina só o objeto a que pertence, ao passo que o método willTrigger()
examina o fluxo de eventos inteiro para o evento especificado pelo parâmetro type.
Quando o willTrigger()
é chamado de um objeto LoaderInfo, apenas os ouvintes que o chamador pode acessar são considerados.
Parâmetros
type:String — O tipo de evento.
|
Boolean — Um valor true se um ouvinte do tipo especificado será disparado; do contrário, será false .
|
activate | Evento |
flash.events.Event
propriedade Event.type =
flash.events.Event.ACTIVATE
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. Esse é um evento de transmissão, ou seja, ele é despachado por todos os objetos EventDispatcher com um ouvinte registrado para esse evento. Para obter mais informações sobre eventos de transmissão, consulte a classe DisplayObject.
A constanteACTIVATE
define o valor da propriedade type
de um objeto de evento activate
.
Observação: Esse evento não tem uma "fase de captura" nem "fase de bubble", significando que os ouvintes de evento precisam ser adicionados diretamente a qualquer destino possível que esteja ou não na lista de exibição.
Dispositivos AIR for TV nunca emitem este evento automaticamente. Você pode, contudo, emiti-lo manualmente.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | Qualquer ocorrência do DisplayObject com um ouvinte registrado para o evento activate . |
Elementos da API relacionados
deactivate | Evento |
flash.events.Event
propriedade Event.type =
flash.events.Event.DEACTIVATE
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. Esse é um evento de transmissão, ou seja, ele é despachado por todos os objetos EventDispatcher com um ouvinte registrado para esse evento. Para obter mais informações sobre eventos de transmissão, consulte a classe DisplayObject.
A constanteEvent.DEACTIVATE
define o valor da propriedade type
de um objeto de evento deactivate
.
Observação: Esse evento não tem uma "fase de captura" nem "fase de bubble", significando que os ouvintes de evento precisam ser adicionados diretamente a qualquer destino possível que esteja ou não na lista de exibição.
Dispositivos AIR for TV nunca emitem este evento automaticamente. Você pode, contudo, emiti-lo manualmente.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | Qualquer ocorrência do DisplayObject com um ouvinte registrado para o evento deactivate . |
Elementos da API relacionados
EventDispatcherExample
e CustomDispatcher
, uma subclasse de EventDispatcher
, para mostrar como um evento personalizado é criado e despachado. O exemplo executa as seguintes tarefas:
- O construtor de
EventDispatcherExample
cria uma variável localdispatcher
e a atribui a uma nova ocorrência CustomDispatcher. - Dentro do
CustomDispatcher
, uma string é definida para que o evento tenha o nomeaction
e o métododoAction()
é declarado. Quando chamado, este método cria o eventoaction
e o envia por meio doEventDispatcher.dispatchEvent()
. - A propriedade
dispatcher
é então utilizada para adicionar o ouvinte de eventoaction
e o método de assinante associadoactionHandler()
, que simplesmente imprime informações sobre o evento quando ele é despachado. - O método
doAction()
é chamado, enviando o 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)); } }
Wed Jun 13 2018, 11:10 AM Z