Está en la página 1de 3

Eventos en ActionScript 3.

0
El manejo de eventos es el punto primordial para lograr interactividad en Flash, esto es
detectar si el usuario realiza determinada accin (presiona un botn o una tecla por
ejemplo) y de acuerdo a ello ejecutamos otra accin.

Utilizando Listeners
En ActionScript 3 (AS3) se ha hecho una cambio sustancial en el manejo de los eventos,
se han eliminado completamente los eventos (onEnterFrame, onRollOver, onRelease,
etc) y se ahora se pueden detectar la interaccin utilizando listeners. Esto es si
deseamos detectar un evento tenemos que agregar un listener especifico para llamar a
una funcin cuando se detecte un evento.

Gestin bsica de eventos


La tcnica para especificar determinadas acciones que deben realizarse como
respuesta a eventos concretos se denomina gestin de eventos. Cuando se
escribe cdigo ActionScript para llevar a cabo la gestin de eventos, se deben
identificar tres elementos importantes:
El origen del evento: en qu objeto va a repercutir el evento? Por
ejemplo, en qu botn se har clic o qu objeto Loader est cargando la
imagen? El origen del evento tambin se denomina objetivo del evento,
ya que es el objeto al que Flash Player (donde tiene lugar realmente el
evento) destina el evento.
El evento: qu va a suceder, a qu se va a responder? Es importante
identificar esto porque muchos objetos activan varios eventos.
La respuesta: qu pasos hay que llevar a cabo cuando ocurra el
evento?
Siempre que se escriba cdigo ActionScript para gestionar eventos, el cdigo debe
incluir estos tres elementos y debe seguir esta estructura bsica (los elementos en
negrita son marcadores de posicin que hay que completar en cada caso concreto):
1. nombreObjeto.addEventListener("nombreEvento", nombreFuncion);

En la lnea anterior se muestra como se asigna una accion a un objeto, en esta


observamos que nombreObjeto es el nombre de instancia del objeto, Movie Clip o botn
al que queremos asignarle una accin, nombreEvento es el evento que deseamos
detectar y nombreFuncion es el nombre de la funcin que vamos a ejecutar si se detecta
el evento.

Por ejemplo si deseamos detectar el evento ENTER_FRAME podemos agregar el listener


de la forma.
1. stage.addEventListener(Event.ENTER_FRAME, mueveNave);

Hay que notar que cada vez que ocurra el ENTER_FRAME nosotros ejecutaremos una
funcin que en nuestro caso la hemos llamado mueveNave.

Utilizando Eventos en Lnea de Tiempo


Esencialmente la programacin se aplicar en un keyframe de la lnea de tiempo, el cual
se ejecutar en el momento en que el cabezal de lectura llegue sobre este. En el
siguiente ejemplo tenemos un MovieClip llamado clip en el escenario de nuestra
pelcula, le agregamos el detector de eventos en el cual cambiamos de posicin al clip.
1. clip.addEventListener(Event.ENTER_FRAME, onEnterClip);
2. function onEnterClip(event:Event) {
3.
clip.x = clip.x + 2;
4.
if (clip.x> 325) {
5.
clip.x = -25;
6.
}
7. }

Eventos para el Mouse


En ActionScript 3.0 para detectar un evento necesitamos agregar un listener (quien se
encarga de escuchar si se produce el evento solicitado) al objeto al que queremos
agregarle una accin. Esto resulta ser ptimo pues solo se detectarn los eventos a los
que deseamos aplicarle alguna accin mejorando as el rendimiento de nuestra pelcula.
Entonces ahora tenemos disponible una nueva clase flash.events.MouseEvent el cual
brinda todos los eventos para el mouse los cuales son: CLICK, DOUBLE_CLICK,
MOUSE_DOWN,
MOUSE_MOVE,
MOUSE_OUT,
MOUSE_OVER,
MOUSE_UP,
MOUSE_WHEEL, ROLL_OUT, ROLL_OVER.
Evento

Detecta

CLICK

Cuando se presiona el botn Izquierdo del Mouse.

DOUBLE_CLICK

Cuando se pulsa dos veces continuas el botn izquierdo del Mouse

MOUSE_DOWN

Slo cuando se presiona el botn del Mouse.

MOUSE_UP

Slo cuando se suelta el botn del Mouse.

MOUSE_MOVE

Cuando el Mouse se mueve.

MOUSE_OVER

Cuando el puntero del Mouse ingresa al espacio del clip o botn al


que se agreg el listener.

Evento

Detecta

MOUSE_OUT

Cuando el puntero del Mouse sale del espacio del clip o botn al que
se agreg el listener.

MOUSE_WHEEL

Cuando se mueve la rueda del Mouse (la que sirve para hacer un
Scholl).

ROLL_OUT

Igual que MOUSE_OUT.

ROLL_OVER

Igual que MOUSE_OVER.

Eventos del Teclado


Para el caso del teclado ahora a traves de la clase flash.events.KeyboardEvent se tienen
disponibles dos tipos de eventos KEY_DOWN y KEY_UP.
Evento
Detecta
KEY_DOWN

Cuando se presiona cualquier tecla.

KEY_UP

Cuando se suelta cualquier tecla.

En el siguiente ejemplo tenemos un movieclip de nombre nave_mc que se mueve


cuando se presionan las teclas izquierda y derecha. La accin se ha aadido al escenario
y cuando se produce el evento KEY_DOWN se ejecuta la funcin mueveNave
1. stage.addEventListener(KeyboardEvent.KEY_DOWN, mueveNave);
2. function mueveNave(e:KeyboardEvent):void {
3.
switch (e.keyCode) {
4.
case Keyboard.LEFT :
5.
nave_mc.x-=5;
6.
break;
7.
case Keyboard.RIGHT :
8.
nave_mc.x+=5;
9.
break;
10.
default :
11.
break;
12.
}
13.
}

También podría gustarte