Comunidad de diseño web y desarrollo en internet online

Problemas con los listeners de botones, me da vergunza!

Citar            
MensajeEscrito el 10 Abr 2013 04:01 am
Hola a todos, no se si es por que estoy muy cansado o que, pero jamás me habian dado tantos problemas unos simples botones, lo que pasa es lo siguiente:

Tengo varios botones los cuales he creado dinamicamente y añadido dentro de un mc que se encuentra en la linea de tiempo principal, cuando coloco los listeners normales (Over y Out) a cada botón, estos me estan dando muchos problemas, la función para el Over se llama "sobreBoton" y para el Out "fueraBoton", ahora en la función "sobreBoton" llamo a una animación que se encuentra dentro del botón y hago una traza en el panel de salida de flash con el nombre del botón sobre el que se encuentra el Mouse, el problema es que la animación como que trata de iniciar pero se queda pegada y se inicia correctamente cuando el mouse se encuentra por fuera del botón, tiene alguna lógica esto ? que estoy haciendo mal ?

El movieclip que hace de botón y que contiene la ya mencionada animación tiene un solo fotograma y 3 capas repartidas así: el fondo del boton, la animación(es un movie clip) y el actionscript que contiene un simple "stop()".
El mc que contiene la animación tiene como nombre de instacia "animacion", 4 capas y varios frames. Las capas que contiene son: una capa para el as, otra para etiquetar al fotograma "start", y otra con la animacion.

Estoy seguro que el problema sucede por la animación es como si el mouse se saliera de el boton cuando esta iniciay hace que esta se quede en un bucle del cual no puede salir, y solamente cuando el mouse abandona completamente el boton es que esta puede iniciar. Agradezco muchisimo si me pueden ayudar con esto. Gracias!

si necesitan revisar el .fla me avisan!

Aqui pueden ver como estan funcionando los condenados botones:

[url=http://maximum-sense.com/error_botones.html][/url]

y aqui el codigo que uso:


Código ActionScript :

function añadirListeners(param: MovieClip):void{
   param.addEventListener(MouseEvent.MOUSE_OVER, sobreBoton);
   param.addEventListener(MouseEvent.MOUSE_OUT, fueraBoton);
}
function sobreBoton(e:MouseEvent):void{
   e.currentTarget.animacion.gotoAndPlay("start");
   trace(e.currentTarget.name);
}
function fueraBoton(e:MouseEvent):void{
        //nada
}


P.D: espero que no sea una bobada, me muero de verguenza.

Por xXHowlXx

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2013 04:03 am

Por xXHowlXx

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2013 01:36 pm
Si la animación no tiene un fondo, el Mouse de pronto está arriba de nada y se dispara el MOUSE_OUT antes de tiempo. Te sugiero que agregues un fondo a la animación (le puedes poner alpha a 1, es solo para que no salte el MOUSE_OUT) para evitar esto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Abr 2013 02:28 pm
Como siempre, muchas gracias Jorge por responder, si me puedes ayudar descarga el .fla desde este link para que tengas una idea mas completa:

Archivo .Fla

Muchas Gracias.

Por xXHowlXx

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2013 02:40 pm
Tengo la idea, si tienes dudas ya vuelves a preguntar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Abr 2013 03:48 pm
Gracias Jorge, yo se que tienes la idea, subí el .fla para que miraras en la animación que podria estar pasando, por que según lo que yo veo la animación si tiene un fondo como me recomendaste, pero sigue pasando lo mismo, por fa si tienes un tiempo libre te agradeceria que me ayudaras. Gracias de antemano.

Por xXHowlXx

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2013 03:59 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Abr 2013 05:28 pm
Gracias por tu respuesta jorge, y pido disculpas a todos por parecer una de esas personas, como tu bien dices en ese post la idea es que todos aportemos algo a la comunidad de cristalab, pero la verdad no lo hice con la intencion de que lo arreglaras "gratís", de hecho no lo hice con la intencion de que lo arreglaras, queria que me dijeras donde estaba mal el mc que contiene la animacion pero comprendemos mejor todos si yo voy preguntanto a medida que por mi propia cuenta voy descubriendo cosas.

Dejando de lado la aclaración voy a intentar lo siguiente, como la animacion que se ejecuta cuando estoy encima del botón es la que me bloquea el boton como tal y por eso se reinicia el evento de "OVER",entonces como posible solución en un post en inglés me encontré con las propiedades mouseEnabled y mouseChildren, se que ambas por defecto se encuentran ajustadas en "true", voy a ajustar la propiedad mousechildren en "false" y cuento como me fue.

O si me pueden explicar exactamente como funcionan agradeceria mucho su colaboración.

Por xXHowlXx

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 Abr 2013 05:39 pm
El MouseOver se activa por el contenido. Si haces la prueba de poner un cuadradote negro que se va, podr{as observarlo claramente. Lo de mouseEnabled y mousechildren es para activar/desactivar los eventos del Mouse, si haces eso sobre el contenido, deja de andar tu boton

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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