Referencia de ActionScript® 3.0 para la plataforma de Adobe® Flash®
Inicio  |  Ocultar lista de paquetes y clases |  Paquetes  |  Clases  |  Novedades  |  Índice  |  Apéndices  |  ¿Por qué hay texto en inglés?
Filtros: Recuperando datos del servidor...
Recuperando datos del servidor...
flash.events 

EventDispatcher  - AS3

Paqueteflash.events
Clasepublic class EventDispatcher
HerenciaEventDispatcher Inheritance Object
Implementa IEventDispatcher
Subclases AbstractEntityMetadata, AbstractInvoker, AbstractServiceWrapper, Accelerometer, AdvancedStyleClient, AnimatorBase, ApplicationUpdater, ApplicationUpdaterUI, ArrayList, AssetHandlerRegistry, AssetHandlerRegistry, AssetManager, AssetManager, AssetModel, AsyncToken, AudioDeviceManager, AuditManager, AutomationManager, AxisBase, AXMToolPopUpDropDownController, BaseAssetHandler, BaseFilter, BaseListData, BaseModuleInstance, BitmapFill, CacheDataDescriptor, CallResponder, Camera, CameraRoll, CameraUI, CategoryHandler, CategoryManager, CategoryModel, CCRDefaultActionHandler, Channel, ChannelSet, ChartItem, ConditionAssignmentModel, ConditionHandler, ConstraintColumn, ConstraintRow, ContainerLayoutAssignmentModel, ContentCache, ContentRequest, ContentSearchManager, Context3D, CSSStyleDeclaration, DataDictionaryHandler, DataDictionaryInstance, DataDictionaryInstanceModel, DataDictionaryManager, DataElementModel, DatagramSocket, DataProvider, DataServiceWrapper, DataStore, DataTransform, DDIModelVariableResolver, DEPDictionaryModel, DesignLayer, DeviceRotation, DisplayLayer, DisplayObject, DNSResolver, DRMManager, DropDownController, EditorConfigurationManager, Effect, EffectInstance, EffectManager, ExpressionEvaluationService, ExtensionContext, ExtensionsConfigManager, FieldAssignmentModel, FieldInstance, File, FileReference, FileReferenceList, FileStream, FileUploadManager, FlexClient, FlexNativeMenu, FlexNativeMenuAutomationImpl, FocusManager, FormConnector, FragmentLayoutHandler, FrameLabel, GameInput, GameInputControl, Geolocation, GradientBase, GradientEntry, GraphicElement, GridColumn, HierarchicalCollectionView, HierarchicalCollectionViewCursor, HierarchicalData, Icon, IKManager, IKMover, ImageHandler, IME, ImportExportManager, InteractionStateDetector, InvokeParams, LayoutHandler, LayoutManager, LayoutRendererBase, LeafNode, LetterHandler, LetterInstance, ListAssignmentModel, ListHandler, LoaderBase, LoaderInfo, LocalConnection, Locale, LocalizeableMessage, LogLogger, MediaElement, MediaFactory, MediaPromise, MediaTraitBase, MessageAgent, MessageBatch, MessageChannel, Metadata, Microphone, MockServiceProvider, Model, Model, ModuleAssignmentModel, ModuleBase, NativeApplication, NativeMenu, NativeMenuItem, NativeProcess, NativeWindow, NetConnection, NetConnectionFactoryBase, NetGroup, NetMonitor, NetStream, NetStreamMetricsBase, NetStreamPlayOptions, NetStreamSwitcher, NetStreamSwitchManagerBase, NetworkInfo, PanelManager, PermissionBasedAssetHandler, PermissionBasedAssetHandler, PresentationModel, PrintJob, ProcessManager, Project, ProLoaderInfo, RadioButtonGroup, RadioButtonGroup, RadioButtonGroup, RemoteNotifier, RSLInfo, RSLPreloader, Screen, SearchManager, SecurityManager, ServerSocket, Service, ServiceMonitor, ServiceTracker, ShaderJob, SharedObject, SimpleFunctionMapper, SimpleVariableResolver, Socket, SolidColor, SolidColorStroke, Sort, SortField, Sound, SoundChannel, SQLConnection, SQLStatement, Stage3D, StageText, StageVideo, StageWebView, State, StorageVolumeInfo, StreamingConnectionHandler, StyleSheet, SWFBridgeGroup, SwfConnector, SystemUpdater, TargetAreaAssignmentModel, TargetInstance, Task, TextContainerManager, TextHandler, TextureBase, Timer, ToolTipManager, TraitEventDispatcher, TransformOffsets, Transition, TransitionManager, Tween, Tween, UIComponentAutomationImpl, UIMovieClipAutomationImpl, UncaughtErrorEvents, URLFilePromise, URLLoader, URLStream, Validator, VariableAssignmentModel, VariableInstance, VariableModel, ViewTransitionBase, Worker, XFADataStream, XMLDataLoader, XMLSignatureValidator, XMLSocket

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La clase EventDispatcher es la clase base de todas las clases que distribuyen eventos. 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 y Adobe® AIR®. 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 o la aplicación de AIR 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
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 de este objeto, con formato según las convenciones específicas de configuración regional.
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
  [evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos.EventDispatcher
  [evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos.EventDispatcher
Información sobre constructores

EventDispatcher

()Información sobre
public function EventDispatcher(target:IEventDispatcher = null)

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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 detectores de eventos no se eliminan automáticamente de la memoria, ya que el recolector de datos innecesarios no elimina el detector siempre que el objeto distribuido exista (a no ser que el parámetro useWeakReference se establezca en true).

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 establecido en true y, después, 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 recolección de elementos no utilizados, por lo que useWeakReference se puede definir como true para estas funciones sin que estos elementos se vean sujetos a la recolección de elementos no utilizados. 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.

dispatchEvent

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

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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.

Elementos de API relacionados

removeEventListener

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

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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.

willTrigger

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

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

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
propiedad Event.type = flash.events.Event.ACTIVATE

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. Este evento es un evento de difusión, lo que significa que lo distribuyen todos los objetos EventDispatcher con un detector registrado para este evento. Para obtener más información sobre los eventos de difusión, consulte la clase DisplayObject.

La constante ACTIVATE define el valor de la propiedad type de un objeto de evento activate.

Nota: este evento no tiene ni "fase de captura" ni "fase de propagación", lo que significa que los detectores de eventos deben añadirse directamente a cualquier destino potencial, se encuentre o no en la lista de visualización.

Los dispositivos de AIR para TV nunca distribuyen automáticamente este evento. El usuario puede, sin embargo, distribuirlo manualmente.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto 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.

Elementos de API relacionados

deactivate

Evento  
Tipo de objeto de evento: flash.events.Event
propiedad Event.type = flash.events.Event.DEACTIVATE

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar inactivos. Este evento es un evento de difusión, lo que significa que lo distribuyen todos los objetos EventDispatcher con un detector registrado para este evento. Para obtener más información sobre los eventos de difusión, consulte la clase DisplayObject.

La constante Event.DEACTIVATE define el valor de la propiedad type de un objeto de evento deactivate.

Nota: este evento no tiene ni "fase de captura" ni "fase de propagación", lo que significa que los detectores de eventos deben añadirse directamente a cualquier destino potencial, se encuentre o no en la lista de visualización.

Los dispositivos de AIR para TV nunca distribuyen automáticamente este evento. El usuario puede, sin embargo, distribuirlo manualmente.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetObjeto 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.

Elementos de API relacionados

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));
    }
}




[ X ]¿Por qué hay texto en inglés?
Cierto contenido de la Referencia de ActionScript 3.0 se muestra en inglés

No todo el contenido de la Referencia de ActionScript 3.0 se traduce a todos los idiomas. Si un elemento del lenguaje no se traduce, aparecerá en inglés. Por ejemplo, la clase ga.controls.HelpBox no está traducida en ningún idioma. Por lo tanto, en la versión en español de la referencia, la clase ga.controls.HelpBox aparecerá en inglés.