Fundamentos de la gestión de eventos

Introducción a la gestión de eventos

Los eventos se pueden considerar como sucesos de cualquier tipo en el archivo SWF que resultan de interés para el programador. Por ejemplo, la mayor parte de los archivos SWF permiten algún tipo de interacción con el usuario, ya sea algo tan sencillo como responder a un clic del ratón o algo mucho más complejo, como aceptar y procesar datos escritos en un formulario. Toda interacción de este tipo entre el usuario y el archivo SWF se considera un evento. Los eventos también pueden producirse sin interacción directa con el usuario, como cuando se terminan de cargar datos desde un servidor o se activa una cámara conectada.

En ActionScript 3.0, cada evento se representa mediante un objeto de evento, que es una instancia de la clase Event o de alguna de sus subclases. Los objetos de evento no sólo almacenan información sobre un evento específico, sino que también contienen métodos que facilitan la manipulación de los objetos de evento. Por ejemplo, cuando Flash Player detecta un clic del ratón, crea un objeto de evento (una instancia de la clase MouseEvent) para representar ese evento de clic de ratón en particular.

Tras crear un objeto de evento, Flash Player lo distribuye, lo que quiere decir que el objeto de evento se pasa al objeto que es el destino del evento. El objeto que actúa como destino del objeto de evento distribuido se denomina destino del evento. Por ejemplo, cuando se activa una cámara conectada, Flash Player distribuye un objeto de evento directamente al destino del evento que, en este caso, es el objeto que representa la cámara. No obstante, si el destino del evento está en la lista de visualización, el objeto de evento se hace pasar por la jerarquía de la lista de visualización hasta alcanzar el destino del evento. En algunos casos, el objeto de evento se "propaga" de vuelta por la jerarquía de la lista de visualización usando la misma ruta. Este recorrido por la jerarquía de la lista de visualización se denomina flujo del evento.

Se pueden usar detectores de eventos en el código para detectar los objetos de evento. Los detectores de eventos son las funciones o métodos que se escriben para responder a los distintos eventos. Para garantizar que el programa responde a los eventos, es necesario añadir detectores de eventos al destino del evento o a cualquier objeto de la lista de visualización que forme parte del flujo del evento de un objeto de evento.

Cuando se escribe código para un detector de eventos, se suele seguir esta estructura básica (los elementos en negrita son marcadores de posición que se sustituyen en cada caso específico):

function eventResponse(eventObject:EventType):void
{
    // las acciones realizadas como respuesta al evento van aquí.
}

eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);

Este código realiza dos funciones. En primer lugar, define una función, que es la forma de especificar las acciones que se realizarán como respuesta al evento. A continuación, llama al método addEventListener() del objeto de origen, básicamente "suscribiendo" la función al evento especificado de modo que se lleven a cabo las acciones de la función cuando ocurra el evento. Cuando el evento se produce finalmente, el destino de evento comprueba la lista de todas las funciones y métodos registrados como detectores de eventos. A continuación los llama de uno en uno, pasando el objeto de evento como parámetro.

Es necesario modificar cuatro elementos del código para crear un detector de eventos personalizado. En primer lugar se debe cambiar el nombre de la función por el nombre que se desee usar (es necesario realizar este cambio en dos lugares, donde en el código aparece eventResponse). Seguidamente, hay que especificar el nombre de clase adecuado para el objeto de evento distribuido por el evento que se desea detectar (EventType en el código) y hay que indicar la constante apropiada para el evento específico (EVENT_NAME en el listado). En tercer lugar, es necesario llamar al método addEventListener() en el objeto que distribuirá el evento (eventTarget en este código). Opcionalmente, se puede cambiar el nombre de la variable utilizada como parámetro de la función (eventObject en el código).

Tareas comunes de la gestión de eventos

A continuación se enumeran diversas tareas comunes de la gestión de eventos que se describirán en este capítulo:

Conceptos y términos importantes

La siguiente lista de referencia contiene términos importantes que se utilizan en este capítulo:

Ejecución de los ejemplos del capítulo

A medida que progresa en el estudio del capítulo, es posible que desee probar algunos de los listados de código. Prácticamente todos los listados de código de este capítulo incluyen una llamada a una función trace() para probar los resultados del código. Para probar los listados de código de este capítulo:

  1. Cree un documento de Flash vacío.
  2. Seleccione un fotograma clave en la línea de tiempo.
  3. Abra el panel Acciones y copie el listado de código en el panel Script.
  4. Ejecute el programa seleccionando Control > Probar película.

    El resultado de las funciones trace() del código se ve en el panel Salida.

Algunos de los ejemplos de código son más complejos y se han programado como una clase. Para probar estos ejemplos:

  1. Cree un documento de Flash vacío y guárdelo en el equipo.
  2. Cree un nuevo archivo de ActionScript y guárdelo en el mismo directorio que el documento de Flash. El nombre del archivo debe coincidir con el nombre de la clase del listado de código. Por ejemplo, si el listado de código define una clase denominada EventTest, use el nombre EventTest.as para guardar el archivo de ActionScript.
  3. Copie el listado de código en el archivo de ActionScript y guarde el archivo.
  4. En el documento de Flash, haga clic en una parte vacía del escenario o espacio de trabajo para activar el inspector de propiedades del documento.
  5. En el inspector de propiedades, en el campo Clase de documento, escriba el nombre de la clase de ActionScript que copió del texto.
  6. Ejecute el programa seleccionando Control > Probar película.

    Verá el resultado del ejemplo en el panel Salida.

Estas técnicas para probar listados de código de ejemplo se explican de forma más detallada en Prueba de los listados de código de ejemplo del capítulo.


Flash CS3

 

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/main/00000135.html