Comunidad de diseño web y desarrollo en internet online

problemas con eventos en CS3

Citar            
MensajeEscrito el 13 Nov 2007 02:41 pm
Hola foro.

Intentare explicarme, a ver, tengo un MovieClip A, que a su vez tiene un MovieClip B en su interior. ent. el MovieClip A tiene un par de listener para escuchar los eventos del mouse {OVER y OUT}.... en el evento OVER tengo esto :

Código :

new Tween(a.b,"height", None.easeNone, 10,100,2);

y en el OUT

Código :

new Tween(a.b,"height", None.easeNone, 100,10,2);


Ahora cuando paso por encima de A se hace el tween en B, pero cuando entro por primera vez a B [MOUSE OVER], se vuelve a disparar el evento de MOUSE_OVER de A :?
:shock:

Que deberia de hacer para que esto no sucediece.?

salu2
^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 13 Nov 2007 04:22 pm
para que no suceda
1) coloca un clip transparente dentro del clip "a", que ocupe el area que le corresponde al clip (lo llamare "c")
pero que este en la capa inferior o profundidad inferior (por debajo de "b")
2) los listenes asignalos al clip "c".

así cuando funcionen los listener de "b", no funcionaran los de "c", y viceversa.

Si quieres que funcionen los listeners de "c" cuando funcionan los de "b", entonces disparalos desde los listeners de "b".

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 13 Nov 2007 05:08 pm
gabynufe eres humana... ?
era broma, de inmediato voy a probar y te digo q tal me fue, aunque con la seguridad que lo dices seguro ya lo haz hecho pruebas satisfactorias.. !

gracias.. ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 14 Nov 2007 04:31 pm
No habia entendido el problema.

Ya lo entendi.

Lo que pasa es que el evento tambien se distribuye en cada uno de los hijos del objeto de visualización, por lo tando hay que validar que la función que se ejecuta cuando se detecta el evento, solo se ejecute cuando este en la fase de "Destino".

Código :

a.addEventListener(MouseEvent.ROLL_OVER, SobreA); // cambie MOUSE_OVER por ROLL_OVER
a.addEventListener(MouseEvent.ROLL_OUT, FueraA);   // cambie MOUSE_OUT por ROLL_OUT

function SobreA(e:MouseEvent) {
   if (e.eventPhase != EventPhase.AT_TARGET) return;
   if(t) {
      a.hoja.height = 100;
      new Tween(a.hoja,"height", None.easeNone, 10,100,2);
      t=false;
   }
}
function FueraA(e:MouseEvent) {
   if (e.eventPhase != EventPhase.AT_TARGET) return;
   if(!t) a.hoja.height = 10;
   t = true;
}


para aprender más de las fases de un objeto Evento, se explica aqui:
http://livedocs.adobe.com/flash/9.0_es/main/wwhelp/wwhimpl/js/html/wwhelp.htm

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 14 Nov 2007 05:23 pm
buen I+D gaby..
gracias.. ^^
salu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox

 

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