El documento describe los eventos en ActionScript y cómo manejarlos. Los eventos se agrupan en paquetes como MouseEvent y KeyboardEvent. Para agregar un manejador de eventos, se debe crear una función, agregar un parámetro del tipo de evento, y usar addEventListener para vincular el evento y la función. El ejemplo final muestra cómo manipular un objeto Huevo usando diferentes eventos de mouse, teclado y botones.
1. EVENTOS
Los eventos para entendernos, vienen agrupados dentro de paquetes (los
paquetes son carpetas ). Así por ejemplo un evento del tipo "CLICK" o
"DOUBLE_CLICK" lo podremos encontrar dentro del paquete MouseEvent,
que reúne todos los eventos de éste tipo. El evento
"ENTER_FRAME" se encuentra dentro del paquete Event, y así
sucesivamente.
La estructura y la sintaxis cambian respecto a versiones anteriores;
podemos decir que siempre deberemos realizar los mismos pasos:
Crear una función que incorpore el código que se ejecutará con el
evento.
Incluir un parámetro ( variable ) dentro de la función cuyo tipo de datos
será el paquete de evento, por ejemplo si vamos a ejecutar una acción
con un CLICK escribiremos ( e:MouseEvent ). El nombre del parámetro
2. puede ser el que queramos ( por costumbre se suele usar "e" o "event") y
por último añadirle :void. ( más adelante veremos que significa )
Añadir un eventListener al objeto en cuestión; esto se hace escribiendo el
nombre del símbolo, un punto y la función addEventListener
añadiremos dos parámetros al addEventListener: el evento precedido de
su paquete, y la función que queremos que se ejecute (
MouseEvent.CLICK, saludar ).
El evento ENTER_FRAME
Aquellos que estén acostumbrados a versiones anteriores de ActionScript,
sabrán que era un evento muy utilizado, por ejemplo para modificar
continuamente propiedades de MovieClip, mover objetos por la pantalla,
ect.
En esta nueva versión, tendremos otros eventos, como el del objeto Timer,
pero seguiremos usando el evento ENTER_FRAME.
removeEventListener
Si nos fijamos la sintaxis es exactamente igual: stage + funcion+
(paquete.evento + función ).En la práctica podemos por ejemplo utilizar un
sólo botón para que haga play y stop sucesivamente, añadiéndole a la
primera función removeEventListener, y a la segunda addEventListener:
EJEMPLO DE EVENTOS PARA UN OBJETO.
(HUEVO)
import flash.events.MouseEvent;
import fl.motion.MotionEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.events.KeyboardEvent;
3. //variables
var huevito=new Huevo();
var miPagina:URLRequest=new URLRequest ("www.google.com.co");
//funciones
function arrastrar(evento:MouseEvent):void{
evento.target.startDrag();
}
function soltar(evento:MouseEvent):void{
evento.target.stopDrag();
}
function sobre(evento:MouseEvent):void{
evento.target.gotoAndStop(2);
}
function afuera(evento:MouseEvent):void{
evento.target.gotoAndStop(1);
}
function accionesBotones(evento:MouseEvent):void{
switch(evento.target.name){
case "arriba_btn":
huevito.y-=5;
break;
4. case "abajo_btn":
huevito.y+=5;
break;case "izquierda_btn":
huevito.x-=5;
break;
case "derecha_btn":
huevito.x+=5;
break;
case "alphaMas_btn":
huevito.alpha+=.05;
break;
case"alphaMenos_btn":
huevito.alpha-=.05;
break;
case"rotarMas_btn":
huevito.rotation+=15;
break;
case"rotarMenos_btn":
huevito.rotation-=15;
break;
case"tamañoMas_btn":
huevito.width+=5;
huevito.height+=5;
break;
10. invisible_btn.addEventListener(MouseEvent.CLICK,accionesBotones);
//direccion de una pagina web
url_btn.addEventListener(MouseEvent.CLICK,accionesBotones);
resetear_btn.addEventListener(MouseEvent.CLICK,accionesBotones);
reproducir_btn.addEventListener(MouseEvent.CLICK,accionesBotones);
detener_btn.addEventListener(MouseEvent.CLICK,accionesBotones);
//eventos con teclado
stage.addEventListener(KeyboardEvent.KEY_UP,teclaArriba);
stage.addEventListener(KeyboardEvent.KEY_DOWN,teclaAbajo);
stage.addEventListener(KeyboardEvent.KEY_DOWN,girar);
//estados iniciales
huevito.stop();
huevito.x=stage.stageWidth/2;
huevito.y=stage.stageHeight/2;
huevito.buttonMode=true;
addChild(huevito);