| Paquete | flash.events |
| Clase | public class EventDispatcher |
| Herencia | EventDispatcher Object |
| Implementa | IEventDispatcher |
| Subclases | 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 |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Los destinos de eventos son una parte importante del modelo de eventos de Flash® Player. El destino del evento sirve de punto focal para el flujo del evento de la jerarquía de la lista de visualización. Cuando se produce un evento, como hacer clic con el ratón o presionar una tecla, Flash Player distribuye un objeto de evento en el flujo del evento desde la raíz de la lista de visualización. A continuación, el objeto de evento se abre camino en la lista de visualización hasta alcanzar el destino de evento. Es entonces cuando comienza su viaje de vuelta por la lista de visualización. Este viaje de ida y vuelta al destino de evento se divide conceptualmente en tres fases: la fase de captura abarca el viaje desde la raíz hasta el último nodo antes del nodo del destino de evento; la fase de destino abarca sólo el nodo de destino de evento y la fase de propagación abarca el resto de los nodos encontrados en el viaje de vuelta hacia la raíz de la lista de visualización.
En general, el modo más sencillo para que una clase definida por el usuario adquiera la capacidad de distribución de eventos es ampliar EventDispatcher. Si no fuera posible (por ejemplo, si la clase ya amplía otra clase), puede implementar la interfaz IEventDispatcher, crear un miembro EventDispatcher y escribir código sencillo para dirigir las llamadas al miembro EventDispatcher añadido.
| Método | Definido por | ||
|---|---|---|---|
|
EventDispatcher(target:IEventDispatcher = null)
Agrega una instancia de la clase EventDispatcher.
| EventDispatcher | ||
|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
| EventDispatcher | ||
|
Distribuye un evento en el flujo del evento.
| EventDispatcher | ||
|
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
| EventDispatcher | ||
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
![]() |
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
| Object | |
![]() |
Indica si existe la propiedad especificada y si es enumerable.
| Object | |
|
Elimina un detector del objeto EventDispatcher.
| EventDispatcher | ||
![]() |
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
| Object | |
![]() |
Devuelve la representación de cadena del objeto especificado.
| Object | |
![]() |
Devuelve el valor simple del objeto especificado.
| Object | |
|
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
| EventDispatcher | ||
| Evento | Resumen | Definido por | ||
|---|---|---|---|---|
| Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo. | EventDispatcher | |||
| Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo. | EventDispatcher | |||
| EventDispatcher | () | constructor |
public function EventDispatcher(target:IEventDispatcher = null)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Agrega una instancia de la clase EventDispatcher.
La clase EventDispatcher suele utilizarse como una clase base, lo que significa que la mayoría de los desarrolladores no necesitan utilizar esta función de constructor. Sin embargo, los desarrolladores avanzados que implementen la interfaz IEventDispatcher necesitarán utilizar este constructor. Si no puede ampliar la clase EventDispatcher y debe implementar la interfaz IEventDispatcher en su lugar, utilice este constructor para agregar una instancia de la clase EventDispatcher.
Parámetrostarget:IEventDispatcher (default = null) — El objeto de destino para eventos distribuidos en el objeto EventDispatcher. Este parámetro se utiliza cuando una clase que implementa IEventDispatcher agrega la instancia EventDispatcher; es necesario para que el objeto contenido pueda ser el destino de los eventos. No utilice este parámetro en casos sencillos en los que una clase amplía EventDispatcher.
|
| addEventListener | () | método |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento. Puede registrar detectores de eventos en todos los nodos de la lista de visualización para un tipo concreto de evento, fase y prioridad.
Una vez registrado correctamente un detector de eventos, no puede cambiar su prioridad mediante llamadas adicionales a addEventListener(). Para cambiar la prioridad de un detector, en primer lugar debe llamar a removeListener(). Seguidamente, puede volver a registrar el nuevo nivel de prioridad.
Recuerde que, una vez registrado el detector, las siguientes llamadas a addEventListener() con un valor type o useCapture distinto tendrán como resultado la creación de un registro independiente del detector. Por ejemplo, si registra primero un detector con useCapture definido como true, detectará únicamente durante la fase de captura. Si vuelve a llamar a addEventListener() con el mismo objeto detector, pero con useCapture definido como false, tendrá dos detectores independientes: uno que detecta durante la fase de captura y otro que lo hace durante las fases de destino y de propagación.
No es posible registrar un detector de eventos únicamente para la fase de destino o la fase de propagación. Dichas fases se acoplan durante el registro, ya que la propagación sólo se aplica a los ascendientes del nodo de destino.
Si ya no necesita ningún detector de eventos, elimínelo llamando a removeEventListener(); de lo contrario, podrían surgir problemas de memoria. Los objetos con detectores de eventos registrados no se eliminan automáticamente de la memoria, ya que el recolector de datos innecesarios no elimina objetos que aún tienen referencias.
Al copiar una instancia EventDispatcher no se copian los detectores de eventos asociados. (Si el nodo recién creado necesita un detector de eventos, debe asociarlo después de crear el nodo). Sin embargo, si mueve una instancia EventDispatcher, los detectores de eventos asociados se moverán también.
Si el detector de eventos se registra en un nodo mientras se procesa un evento en dicho nodo, el detector de eventos no se desencadenará durante la fase actual, aunque sí se desencadenará en una fase posterior del flujo del evento, por ejemplo, en la fase de propagación.
Si un detector de eventos se elimina de un nodo mientras se procesa un evento en dicho nodo, las acciones actual seguirán desencadenándolo. Una vez eliminado, el detector de eventos ya no se vuelve a invocar nunca más (a no ser que se registre de nuevo para otro proceso).
Parámetros
type:String — El tipo de evento.
|
|
listener:Function — La función del detector que procesa el evento. Esta función debe aceptar un objeto de evento como parámetro único y no debe devolver ningún valor, tal como indica el siguiente ejemplo:
La función puede tener cualquier nombre. |
|
useCapture:Boolean (default = false) — Determina si el detector funciona en la fase de captura o en las fases de destino y de propagación. Si useCapture se define como true, el detector procesa el evento sólo durante la fase de captura y no en las fases de destino o propagación. Si useCapture es false, el detector procesa el evento sólo durante la fase de destino o de propagación. Para detectar el evento en las tres fases, llame dos veces a addEventListener, una con useCapture definido como true y, a continuación, otra con useCapture definido como false.
|
|
priority:int (default = 0) — El nivel de prioridad del detector de eventos. La prioridad viene designada por un entero de 32 bits sin signo. Cuanto mayor sea el número, mayor será la prioridad. Todos los detectores con prioridad n se procesan antes que los detectores con prioridad n-1. Si dos o más detectores comparten la misma prioridad, se procesarán en el orden en el que se añadieron. La prioridad predeterminada es 0.
|
|
useWeakReference:Boolean (default = false) — Determina si la referencia al detector es fuerte o débil. Una referencia fuerte (valor predeterminado) impide que el detector sea eliminado por el recolector de datos innecesarios. Una referencia débil no lo hace. Las funciones de miembros de clase no están sujetas a la eliminación de datos innecesarios, por lo que |
ArgumentError — El detector listener especificado no es una función.
|
Véase también
| dispatchEvent | () | método |
public function dispatchEvent(event:Event):Boolean
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Distribuye un evento en el flujo del evento. El destino del evento es el objeto EventDispatcher en el que se llama al método dispatchEvent().
Parámetros
event:Event — El objeto de evento distribuido en el flujo del evento. Si el evento está siendo redistribuido, se crea un clon del evento automáticamente. Una vez distribuido un evento, no es posible modificar su propiedad target, por lo que se debe crear una nueva copia del evento para que la redistribución funcione.
|
Boolean — Un valor true si el evento se distribuye correctamente. Un valor false indica un error o que se ha llamado a preventDefault() en el evento.
|
Error — Se ha alcanzado el límite de recursión de distribución de eventos.
|
| hasEventListener | () | método |
public function hasEventListener(type:String):Boolean
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. De este modo, es posible determinar en qué lugar de la jerarquía del flujo del evento un objeto EventDispatcher ha alterado el control de un tipo de evento. Para determinar si un tipo de evento concreto realmente desencadena un detector de eventos, utilice willTrigger().
La diferencia entre hasEventListener() y willTrigger() reside en que hasEventListener() examina sólo el objeto al que pertenece, mientras que willTrigger() examina todo el flujo del evento especificado por el parámetro type.
Si se llama a hasEventListener() desde un objeto LoaderInfo, sólo se tendrán en cuenta los detectores a los que puede acceder el que origina la llamada.
Parámetros
type:String — El tipo de evento.
|
Boolean — Un valor true si está registrado un detector del tipo especificado; false en caso contrario.
|
Véase también
| removeEventListener | () | método |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Elimina un detector del objeto EventDispatcher. Si no hay ningún detector coincidente registrado con el objeto EventDispatcher, la llamada a este método no surtirá ningún efecto.
Parámetros
type:String — El tipo de evento.
|
|
listener:Function — El objeto detector que se va a eliminar.
|
|
useCapture:Boolean (default = false) — Especifica si el detector se registró para la fase de captura o para las fases de destino y de propagación. Si el detector se registró tanto para la fase de captura como para las fases de destino y de propagación, se necesitarán dos llamadas a removeEventListener() para eliminar ambos detectores: una llamada con useCapture() definido como true y otra llamada con useCapture() establecido en false.
|
Véase también
| willTrigger | () | método |
public function willTrigger(type:String):Boolean
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto. Este método devuelve true si se desencadena un detector de eventos durante cualquier fase del flujo del evento cuando se distribuye un evento del tipo especificado a este objeto EventDispatcher o a cualquiera de sus descendientes.
La diferencia entre los métodos hasEventListener() y willTrigger() reside en que hasEventListener() examina sólo el objeto al que pertenece, mientras que el método willTrigger() examina todo el flujo del evento especificado por el parámetro type.
Si se llama a willTrigger() desde un objeto LoaderInfo, sólo se tendrán en cuenta los detectores a los que puede acceder la función que origina la llamada.
Parámetros
type:String — El tipo de evento.
|
Boolean — Un valor true si se desencadena un detector del tipo especificado; de lo contrario, false.
|
| activate | Evento |
flash.events.Event
flash.events.Event.ACTIVATE
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo.
Define el valor de la propiedadtype de un objeto de eventoactivate.
Nota: este evento no recorre una "fase de captura" y se distribuye directamente en el destino, ya se encuentre este destino en la lista de visualización o no.
Este evento tiene las propiedades siguientes:
| Propiedad | Valor |
|---|---|
bubbles | false |
cancelable | false; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | El objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | Cualquier instancia de DisplayObject con un detector registrado para el evento ACTIVATE. |
| deactivate | Evento |
flash.events.Event
flash.events.Event.DEACTIVATE
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo.
Define el valor de la propiedadtype de un objeto de evento deactivate.
Nota: este evento no recorre una "fase de captura" y se distribuye directamente en el destino, ya se encuentre este destino en la lista de visualización o no.
Este evento tiene las propiedades siguientes:
| Propiedad | Valor |
|---|---|
bubbles | false |
cancelable | false; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | El objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | Cualquier instancia de DisplayObject con un detector registrado para el evento DEACTIVATE. |
EventDispatcherExample y CustomDispatcher, una subclase de EventDispatcher, para mostrar cómo se crea y se distribuye un evento personalizado. El ejemplo realiza las siguientes tareas:
EventDispatcherExample crea una variable local dispatcher y la asigna a una nueva instancia de CustomDispatcher.CustomDispatcher se define un cadena para que el evento se llame action y se declara el método doAction(). Cuando se llama, este método crea el evento action y lo distribuye utilizando EventDispatcher.dispatchEvent().dispatcher se utiliza para añadir el detector de eventos action y un método suscriptor asociado actionHandler(), que simplemente imprime la información sobre el evento cuando se distribuye.doAction(), que distribuye el 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));
}
}
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/events/EventDispatcher.html