Estás en:
Cristalab > Tips > Obtener parámetros en eventos de Actionscript 3
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.
Artículos Relacionados
actionscript_3
Muy bueno
49 tips, vayan marchando las birras ... brindaremos por los 50
Jorge
Por: solisarg
Noooooooooooo Zguillez te adelantaste yo pensaba hacer un tuto del MouseEvent pero ya me restate material, de todas formas esta muy bueno felicitaciones.
Por: jegm88
jegm88-blog :
Noooooooooooo Zguillez te adelantaste yo pensaba hacer un tuto del MouseEvent pero ya me restate material
Wellcome to the jungle
Por: Zguillez
Genial, como siempre, Z. Gracias por el tip!
Por: The Fricky!
sip tendré que acostumbrarme.
Por: jegm88
Breve "tirón de orejas", el operador condicional se debería usar sólo para asignar valores a variables
Código :
code=(e.type == "rollOver") ? 0xCCCCCC :
((e.type=="rollOut") ? 0x999999 :
((e.type=="mouseDown") ? 0x666666 :
0xCCCCCC))
Por todo lo demás claro como el agua
Por: Eliseo-blog
Simple, claro, sencillo y útil. Muchas Gracias.
Por: Noja33
Muy buen tip, me sera de mucha utilidad. Gracias
Por: fredybg
Deja un comentario