Otener parámetros en eventos de Actionscript 3

November 18th, 2008 Posted in AS3, Básico, Trucos

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:

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:

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 podríamos recuperar ese parámetro del evento:

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 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:

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.

Comparte:
  • Meneame
  • Twitter
  • Facebook
  • Google Bookmarks
  • del.icio.us
  • Technorati
  • email
  • Print

Post relacinonados:

  1. Eventos de botón en AS3
  2. Eventos click y doble click en un botón con Actionscript 3
  3. Botones con parámetros en Actionscript 3
  4. onReleaseOutside, onDragOut, onDragOver en ActionScript 3
  5. Añadir acciones a varios eventos

4 Responses to “Otener parámetros en eventos de Actionscript 3”

  1. Rafeo Says:

    Órale! Muy sencillo pero bastante útil! Gracias :D .


  2. Bleend Says:

    Siempre he pensado que eso se podía hacer. Genial como siempre Z.


  3. ria-dev.org » Manejo de acciones de botones en as3 Says:

    [...] Además el manejo de las acciones en actionscript 3, permite obtener datos de las acciones y programar comportamientos mas dinámicos tal y como se muestra en este post [...]


  4. gonzalo Says:

    Con que poquito... , tu si que formas parte.
    Muchas gracias¡¡¡¡¡¡.


Leave a Reply