Foros del Web » Creando para Internet » Flash y Actionscript »

Problema botón con tween (si paso el ratón rápido)

Estas en el tema de Problema botón con tween (si paso el ratón rápido) en el foro de Flash y Actionscript en Foros del Web. Tengo un problema cuando paso demasiado rápido el ratón sobre el botón, tengo 2 tweens, uno para el onRollOver y otro para el onRollOut. Querría ...
  #1 (permalink)  
Antiguo 03/10/2009, 05:45
Tes
 
Fecha de Ingreso: noviembre-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Problema botón con tween (si paso el ratón rápido)

Tengo un problema cuando paso demasiado rápido el ratón sobre el botón, tengo 2 tweens, uno para el onRollOver y otro para el onRollOut. Querría que la animación del onRollOut empezara si y solo si, el onRollOver está finalizado porque sino se me acoplan.

Código:
onRollOver = function(){
	fondo.tween("_y", -5, 0.4, "easeOutBounce");
	textoA.tween("_x", _width, 0.4, "easeInBack");
	textoB.tween("_x", 0, 0.6, "easeOutBack", 0.4);
}
onRollOut = function(){	
	fondo.tween("_y", 25 , 0.4, "easeOutBounce", 0.4);	
	textoA.tween("_x", 0, 0.6, "easeOutBack", 0.4);
	textoB.tween("_x", -_width, 0.4, "easeInBack");
}
Les adjunto el archivo en flash CS3 por si quieren echarle un vistazo, pasen el ratón rápido sobre el botón. Gracias

3w.zshare.net/download/66449706a92d1490/
  #2 (permalink)  
Antiguo 08/10/2009, 14:15
Tes
 
Fecha de Ingreso: noviembre-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema botón con tween (si paso el ratón rápido)

¿Nadie sabe cómo podría solucionarlo?
  #3 (permalink)  
Antiguo 08/10/2009, 14:34
 
Fecha de Ingreso: mayo-2008
Ubicación: Murcia, España
Mensajes: 313
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Problema botón con tween (si paso el ratón rápido)

Bien, no se mucho de AS2, pero lo que debes hacer es lo siguiente:

Create una variable booleana que actuará de banderita, la cual será true si la animación de rollOver ha terminado y false si aún no ha terminado...

Únicamente, en la función de rollOut deberás comprobar el estado de esta variable.

Cómo saber si ha terminado?, al igual que onRollOver es un capturador de eventos, la clase tween posee sus propios eventos, imagino que onMotionFinish o algo así, miralo, pero por ahí va la cosa ;)
  #4 (permalink)  
Antiguo 13/10/2009, 04:15
Tes
 
Fecha de Ingreso: noviembre-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema botón con tween (si paso el ratón rápido)

Gracias, como dices la clase tween posee sus propios eventos. Lo solucioné poniendo un interruptor como dijiste. Programé esto y funciona perfectamente:

Código:
var acabado = false;

function fin(){	if (acabado == false) { acabado = true; } else { acabado = false; } }

onRollOver = function(){
	trace (acabado);
	if (acabado == false){
		fondo.tween("_y", -5, 0.4, "easeOutBounce");
		textoA.tween("_x", _width, 0.4, "easeInBack");
		textoB.tween("_x", 0, 0.6, "easeOutBack", 0.4, fin);
	}
}
onRollOut = function(){
	trace (acabado);
	if (acabado == true){
		fondo.tween("_y", 25 , 0.4, "easeOutBounce", 0.4, fin);	
		textoA.tween("_x", 0, 0.6, "easeOutBack", 0.4);
		textoB.tween("_x", -_width, 0.4, "easeInBack");
	}
}
  #5 (permalink)  
Antiguo 15/11/2009, 14:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 22
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema botón con tween (si paso el ratón rápido)

Yo tengo el mismo problema pero lo malo esque no uso la clase tween.
Entonces no hay ninguna funcion que me devuelva si el onRoll a acabado o si aun se esta ejecutando?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:04.