Comunidad de diseño web y desarrollo en internet online

MOUSE_OVER o hitTestPoint o los dos?

Citar            
MensajeEscrito el 18 Nov 2008 01:29 am
Hice una galeria de imágenes estática y encima coloqué con um for y API uma série de cuadraditos con alpha 0 que hacen el papel de botones. Cuando el usuário hace MOUSE_OVER el alpha va hasta 0.7 y vuelve a 0 valiéndome para esto de ENTER_FRAME. El problema es que si el cursor pasa muy rápido se producen los comportamientos mas inesperados. O el alpha se traba en el valor máximo, o no funciona, o queda aumentando y disminuyendo en forma ininterrumpida. Un colega me dijo que utilice hitTestPoint. Mi pregunta es si debo utilizar en combinación con MOUSE_OVER o substituyendolo.

Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Nov 2008 07:36 am
Si lo mueves muy rápido puede que no pille el MOUSE_OUT, y por eso no se cancele el ciclo de alphas. Puedes usar hitTest para ver si el ratón continúa o puedes simplemente que el ciclo se cierre sin necesidad del MOUSE_OUT

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Nov 2008 09:40 am
Jorge: voy a intentar graficar mejor el problema. Tengo 24 botones creados con for en dos filas todos con alpha = 0. El MOUSE_OVER hace el siguiente proceso, aumenta el alpha hasta 0,7 y vuelve a 0 utilizando para esto ENTER_FRAME. No preciso entonces, me parece, de MOUSE_OUT.
El problema es que cuando el mouse pasa al botón de al lado, si lo hace muy rápido, el primer MOUSE_OVER todavía está en ejecución y al tentar ejecutar el segundo en esta situación da el problema.
No se si vos te acordás de un famoso botón dinámico desarrollado por Rosvelt. Él hacia la transición utilizando la timeline ya hice de esa forma y funciona bien, el problema es que tendría que hacer ese procedimiento 24 veces. Se te ocurre alguna idea de como hacer eso sin tener que repetir el proceso para todos los botones?

Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Nov 2008 09:52 am
Si usas la clase Tween para el alpha, los transiciones están encapsuladas y no sufren por la simultaneidad (aunque si son muchas es un buen caño para la CPU) ¿Transición por timeline ...? mmm .... malo, malo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Nov 2008 10:22 am
Jorge, hice con Tween y funcionó bien. Me ahorraste un montón de líneas de código y dolores de cabeza.

Coloco aqui por si alguien precisa:

Código ActionScript :

import fl.transitions.Tween;
import fl.transitions.easing.*;

mcCuadrado.addEventListener(MouseEvent.MOUSE_OVER, mcCuadradoMouseOverHandler);
mcCirculo.addEventListener(MouseEvent.MOUSE_OVER, mcCuadradoMouseOverHandler);

mcCuadrado.alpha = 0;
mcCirculo.alpha = 0;

function mcCuadradoMouseOverHandler(ev:MouseEvent):void{

var myTweenAlpha:Tween = new Tween(ev.target, "alpha", Strong.easeInOut, 0.6, 0, 0.5, true);

}


Muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

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