Paqueteflash.events
Clasepublic class EventDispatcher
HerenciaEventDispatcher Inheritance 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

La clase EventDispatcher implementa la interfaz IEventDispatcher y es la clase base para la clase DisplayObject. La clase EventDispatcher permite que cualquier objeto de la lista de visualización sea un destino de evento y, como tal, pueda utilizar los métodos de la interfaz IEventDispatcher.

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.

Ver los ejemplos



Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
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
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
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
Eventos
 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
Información sobre constructores
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ámetros
target: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.
Información sobre métodos
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:

function(evt:Event):void

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 useWeakReference se puede definir como true para estas funciones sin que estos elementos se vean sujetos a la eliminación de datos innecesarios. Si useWeakReference se establece en true para un detector que sea una función interior anidada, la función se recogerá como dato innecesario y no volverá a ser persistente. Si se crean referencias a la función interior (guárdela en otra variable), no se recogerá como dato innecesario y seguirá siendo persistente.


Emite
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.

Valor devuelto
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.

Emite
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.

Valor devuelto
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.

Valor devuelto
Boolean — Un valor true si se desencadena un detector del tipo especificado; de lo contrario, false.
Información sobre eventos
activate Evento
Tipo de objeto de evento: flash.events.Event
Event.type property = 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 propiedad type 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:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetCualquier instancia de DisplayObject con un detector registrado para el evento ACTIVATE.
deactivate Evento  
Tipo de objeto de evento: flash.events.Event
Event.type property = 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 propiedad type 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:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetCualquier instancia de DisplayObject con un detector registrado para el evento DEACTIVATE.
Ejemplos Cómo utilizar los ejemplos
EventDispatcherExample.as

En el ejemplo siguiente, se utilizan las clases 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:
  1. El constructor de EventDispatcherExample crea una variable local dispatcher y la asigna a una nueva instancia de CustomDispatcher.
  2. Dentro de 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().
  3. La propiedad 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.
  4. Se invoca el método 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