Comunidad de diseño web y desarrollo en internet online

Obtener parámetros en eventos de Actionscript 3

Cuando lanzamos un evento en Actionscript 3, por ejemplo de la clase MouseEvent, ponemos recuperar una serie de parámetros lanzados con ese evento.

Por ejemplo, en este código:

Código :

boton.addEventListener(MouseEvent.MOUSE_DOWN, onBotonEvent);

function onBotonEvent(e:MouseEvent):void
{
   trace(e);
}


El trace() nos mostraría el evento que ha lanzado la función mostrando también todos los parámetros. En este caso serían estos:

Código :

MouseEvent type="mouseDown" bubbles=true cancelable=false eventPhase=2 localX=43 localY=30 stageX=170.55 stageY=106 relatedObject=null ctrlKey=false altKey=false shiftKey=false delta=0


Recuperar estos parámetros y saber con detalle el evento que ha lanzado la función nos puede resultar muy útil en muchos casos.

por ejemplo, su quisiésemos ejecutar una acción u otra al clicar sobre el botón dependiendo si estamos pulsando la tecla <ctrl> podríamos recuperar ese parámetro del evento:

Código :

boton.addEventListener(MouseEvent.MOUSE_DOWN, onBotonEvent);
function onBotonEvent(e:MouseEvent):void
{
   e.ctrlKey == true ? accion1() : accion2();
}


Aquí, si clicamos al botón sin tener pulsada la tecla <ctrl> ejecutaremos la función accion2, mientras que con el mismo clic con la tecla pulsada ejecutaríamos la función accion1.

También podemos utilizar este recurso para asignar la misma función a varios eventos y poder asignar diferentes parámetros a la función dependiendo del tipo de evento:

Código :

import fl.motion.Color;
boton.addEventListener(MouseEvent.ROLL_OVER, onBotonEvent);
boton.addEventListener(MouseEvent.ROLL_OUT, onBotonEvent);
boton.addEventListener(MouseEvent.MOUSE_DOWN, onBotonEvent);
boton.addEventListener(MouseEvent.MOUSE_UP, onBotonEvent);

function onBotonEvent(e:MouseEvent):void
{   
   var code:uint;   
   e.type == "rollOver" ? code = 0xCCCCCC : null;
   e.type == "rollOut" ? code = 0x999999 : null;
   e.type == "mouseDown" ? code = 0x666666 : null;
   e.type == "mouseUp" ? code = 0xCCCCCC : null;
   
   var color:Color = new Color();
   color.setTint(code, 1);
   e.target.transform.colorTransform = color;
}


En este ejemplo, todos los eventos del botón ejecutan la misma función pero dependiendo de cada uno se coloreará el clip de un color u otro.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate