Comunidad de diseño web y desarrollo en internet online

Hay algun limite de listeners???

Citar            
MensajeEscrito el 26 Oct 2008 04:28 pm
Pues eso, a ver si hay algun limite de listeners o algo asi, pq me ocurre lo siguiente:
Creo un tablero de 9 x 9 movieclips, para un sudoku.
A cada uno de esos 81 mc's le añado un listener de MOUSE_DOWN antes de crearlos en el main.
Dentro de cada constructor del clip le añado 2 listeners, uno de MOUSE_OVER y otro de MOUSE_OUT, para efectos visuales.
Aparte, el main tiene un listener de KEY_DOWN.

La idea es sencilla:
Si hace clic en un mc, se ejecuta una funcion del main.
Si mueve el raton por encima o lo quita, aparece un efecto visual.
Si presiona una tecla: si son flechas se mueve por los distintos mc's
si son numeros los escribe en el mc seleccionado
y si es espacio borra los numeros.

El problema viene aqui: TODO funciona perfectamente, excepto determinados mc's. Siempre los mismos, pero no ordenados, cuando despues de seleccionarlos, pulso alguna tecla, porque ni siquiera hace el listener. La cuestion es que el problema no puede ser del código, porque ademas de que tengo poco, lo he re-revisado y re-testeado y los mc's que no funcionan no tienen un patron (es decir no funciona solo la linea de abajo o la mitad de la derecha o algo asi)
Eso ya de por si me parece estraño, pero se arregla si elimino los MOUSE_OVER y MOUSE_OUT de los efectos.

Mi duda es: ¿Hay algun limite de listeners por movieclip? Y si a alguien le ha pasado algo parecido ¿Como lo arregló?

Gracias

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Oct 2008 05:58 pm
Bueno, el problema está arreglado, pero la cuestión sigue en pie. ¿Hay algún limite de listeners por aplicación o movieclip?

Un saludo

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Oct 2008 02:48 pm
Hola

No, no hay limites en lac cantidad de listeners por objeto ni limite en total (hasta donde yo se). Lo unico es que si abusas de listeners la aplicacion puede q se relentice.

Por otro lado, lo mejor en tu caso es que el elemento padre de los 81 mc sea el encargado de capturar el evento de todos sus hijos, fijate q de esta manera solucionas tu problema con 2 listener y no con 81 * 2.... es solo una recomendacion, podes usar esto para capturar los eventos de lso hijos

Código :

padre.addEventListener("evento", funcion, true)


Fijate q tiene un true como ultimo parametro


Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 27 Oct 2008 03:12 pm
Hay alguna funcion para capturar listeners o me bastaria con añadirle a la clase hijo del ejemplo anterior la funcion llamada "funcion"??

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Oct 2008 05:23 pm
Una funcion para capturar listeners? q es eso? no entendi...

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 28 Oct 2008 12:55 am
Nada, estaba pensando en como podia ejecutar la funcion del hijo si el listener lo tengo en el padre, pero creo que ya tengo una idea de como hacerlo

Por X-TUS

94 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Oct 2008 03:04 am
la funcion la tnes q poner en el padre, o bien en una clase auxiliar, fijate q estas usando siempre la misma funcion sea de donde sea q lance el evento.

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

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