Hoy re-aprendí algo de AS3 que ya habia olvidado, y para que no se me olvide de nuevo, asi como para compartirlo con los 3 lectores que tengo, ahi les va.
El mecanismo de eventos dentro de AS3 es muy poderoso, los eventos pre-definidos de Actionscript cubren casi todas las necesidades de control que podriamos necesitar cubrir, peeeero, a veces sucede que necesitamos alguna forma de comunicar algun ajem, SUCESO a nuestra aplicacion flash., como hacerle ? ah pues con un evento personalizado.
Pongamos un Ej,
Tenemos una clase llamada Videojuego, y controla pues eh, un videojuego (simple no ?), entonces ..este videojuego, hace instancias de otra clase llamada Jugador, que se encarga de los detalles de cada jugador (cuanta salud tiene, sus armas, etc), ahora supongamos que queremos avisar a la clase Videojuego, cuando alguno de los Jugadores muere, como hacer esto ?
En la clase Jugador, tenemos que definir la CONSTANTE con la que nombraremos a nuestro evento, esta linea la tenemos que definir al principio de nuestra clase, para asi poder crear el evento en cualquier parte de nuestro codigo mas adelante.
public static const JUGADOR_MUERTO:String = “jugadorMuerto”;
Mas adelante en nuestro codigo, cuando ya queramos lanzar el evento personalizado, lo hacemos de la siguiente forma:
dispatchEvent( new Event (“jugadorMuerto”) );
esta linea de codigo lanza un evento a lo que los muchachitos de Adobe llaman Event Flow, en cristiano, Flujo de Eventos
para que un evento nos sirva de algo, tenemos que tener un escucha registrado para dicho evento, registrar un escucha (listener) para un evento personalizado, se hace de la misma forma que lo hacemos para los eventos pre-definidos de AS3
emisor.addEventListener(Jugador.JUGADOR_MUERTO, youDead);
function youDead(miEvento : Event):void {
// bang!
}
Espero que les sirva, :)


