Comunidad de diseño web y desarrollo en internet online

Activar y detectar eventos del mouse en una sola llamada en AS3

Les traigo un método que tengo para trabajar a la hora de crear muchos botones, sin tener que crear muchas funciones para diferentes tipos de eventos del mouse, este tip esta hecho para As3, pero más que nada lo importante es la lógica a la hora de programar y podría ser aplicada a otros lenguajes.

Si tienen un solo botón, es tan simple como "copiar y pegar" el código y hacer una sola llamada al inicio:

Código :

activoBoton(miBoton);

//...


Acá el código:

Código :

function activoBoton(mc:MovieClip):void {
   mc.buttonMode = true;
   mc.mouseChildren = false;
   mc.addEventListener(MouseEvent.MOUSE_OVER,appBoton);
   mc.addEventListener(MouseEvent.MOUSE_OUT,appBoton);
   mc.addEventListener(MouseEvent.MOUSE_DOWN,appBoton);
}

function appBoton(e:Event):void {
   switch (e.type) {
      case "mouseOver" :
         trace("mouseOver");
         break;
      case "mouseOut" :
         trace("mouseOut");
         break;
      case "mouseDown" :
         trace("mouseDown");
         break;
   }
}


Y si tienen muchos botones en el escenario con nombres de instancia de manera ascendente como b0,b1,b2,b3,b4,b5....

Ponen este código al inicio y lo modifican según sus necesidades:

Código :

init();
function init():void {
   var totalBotones:Number = 7;
   for (var i:Number = 0; i<totalBotones; i++) {
      var boton:MovieClip = MovieClip(this["b" + i]);
      activoBoton(boton);
   }
}

//...


Espero sea de aporte, si algunos necesitan una explicacion mas detallada del porqué funciona así, pues me avisan y responderé a las dudas.

Slds.

¿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

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