Comunidad de diseño web y desarrollo en internet online

¿Cómo evitar que un botón "memorice" los cliks?

Citar            
MensajeEscrito el 15 Feb 2012 06:37 am
Saludos a tod@s.
Tengo un pequeño gran problema con un boton a ver si pueden ayudarme. No sé si sabré explicarme. Resulta que cuando se hace click muchas veces en él y de forma muy rápida la funcion se ejecuta una vez tras otra. Es decir, pongamos que la funcion tarda 5 segundos en ejecutarse. Pues si se hacen muchos clicks, cuando la funcion termina empieza otra vez y así hasta el total de cliks.
Le puse un:

Código ActionScript :

boton.mouseEnabled = false;
...en el mouse-DOWN para luego poner un:

Código ActionScript :

boton.mouseEnabled = true;
...cuando termina la funcion pero no funciona. Es como si "recordara" los clicks que se han hecho. Termina y vuelve a empezar.
¿cómo puedo evitar esto?
gracias

Por Unukalhai

79 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Feb 2012 09:40 am
seguramente es por que el evento del MOUSE_CLICK lo acumule. Te recomiendo que en vez de usar el "mouseEnabled" uses "removeEventListener" te pongo un ejemplo

Código ActionScript :

import flash.display.MovieClip;
import flash.events.MouseEvent;

var Boton: MovieClip= new MovieClip();

addChild(Boton);

Boton.addEventListener(MouseEvent.CLICK, HacerClikBoton);

function HacerClikBoton (e: MouseEvent): void
{
   //Quitamos el evento del click de raton para que no acumule mas click
   Boton.removeEventListener(MouseEvent.CLICK, HacerClikBoton);
   
   //procesamos lo que queramos
   
   //Volvemos a poner el evento del click del raton si nos interesa
   Boton.addEventListener(MouseEvent.CLICK, HacerClikBoton);
}


espero que te haya resuelto la duda

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Feb 2012 03:14 am
Gracias por tu aporte Yonomimi pero me temo que tampoco funciona con removeEventListener.
¡sigue reconociendo los clicks!¡increible! :shock: ¿alguna otra idea? :) thx

Por Unukalhai

79 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2012 06:17 am
tienes mas eventos de mouse como MOUSE_DOWN??

solo se me ocurre es que estas haciendo varios eventos con la misma funcion

sin ver codido no puedo darte mas ideas

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Feb 2012 10:13 pm
Hola de nuevo.
Esto es lo que tengo:

Código ActionScript :

botonera.deflate_btn.addEventListener(MouseEvent.MOUSE_DOWN, _eventDEFLATE);

...

function _eventDEFLATE(event:MouseEvent):void {
   eventDEFLATE();
}

function eventDEFLATE():void {

   botonera.deflate_btn.removeEventListener(MouseEvent.MOUSE_DOWN, _eventDEFLATE);
   ...
   deflacion();
   ...
   botonera.deflate_btn.addEventListener(MouseEvent.MOUSE_DOWN, _eventDEFLATE);

}

Respondiendo a tu pregunta, sí tengo otros eventos como MOUSE_DOWN. En el resto de los botones, que hay más.
En el mismo botón (deflate_btn) también hay otros eventos como MOUSE_OVER y MOUSE_OUT pero también le di removeEventListener y no va.
P.D.: deflacion() es la función que va entre los removeEvent... y addEvent... y que me necesitaría que mientras se ejecuta no se pueda hacer click en el botón.


Gracias por tu ayuda. Sigo buscando la solución a esto.

Por Unukalhai

79 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.