Unidad 18. Avanzado: ActionScript 3 - Eventos de hijo a padre

Crear nuestros propios eventos

A parte de los eventos que tiene Flash, podemos producir los nuestros propios. Basta con utilizar el siguiente código:

objeto.dispatchEvent(new Event("miNombreDeEvento"));

El método dispatchEvent es el que hace que se produzca el evento indicado como parámetro. Podemos pasarle un evento existente, o crear uno propio utilizando new Event indicando el nombre que le queramos dar.

En el ejemplo anterior, podemos capturar el evento como hemos visto hasta ahora:

this.addEventListener("miNombreDeEvento", miFuncion);

Propagación de eventos

Al crear un evento, podemos añadir un parámetro booleano más, la propagación. En resumen, cuando hay propagación el evento se propaga fuera del MovieClip hacia los elementos padres, permitiendo así que estos puedan escuchar ese evento.

Por ejemplo, podemos lanzar un evento personalizado con propagación así:

objeto.dispatchEvent(new Event("miNombreDeEvento", true));

Esto resulta muy útil. Imaginemos que tenemos un MovieClip con varios botones, destinado a ser utilizado dentro de otro MovieClip para navegar por él. Podríamos introducir el código directamente utilizando parent, pero sólo nos serviría para una acción específica. ¿Pero y si queremos utilizar el mismo archivo en otros proyectos?

Con lo que hemos visto, bastaría con poner el siguiente código en cada botón:

botonAvanzar.addEventListener(MouseEvent.MOUSE_UP, miFuncion);



function miFuncion(event:MouseEvent):void

{

   dispatchEvent(new Event("botonAvanzarPulsado", true));

} 

Luego, en la película padre, bastaría con capturar el evento botonAvanzarPulsado como hemos visto hasta ahora, y dar la funcionalidad que queramos al botón.

Por ejemplo, esto es lo que hemos hecho en las páginas del periódico digital, ejercicio propuesto que encontrarás al final del tema.

   Inicio