Comunidad de diseño web y desarrollo en internet online

Sobre clase Tween y el tutorial del Menu con "Slider"

Citar            
MensajeEscrito el 01 Jun 2009 04:57 pm
Buenas...

Estoy haciendo un menu en Flash de 4 botones simples y estoy usando el Tutorial de Menu en Flash con Slider, sin embargo quise ir un poco mas alla y le agregue efecto de Fade In y Fade Out con la Clase Tween, ademas estoy usando el setInteval para que despues de cierto tiempo haga el Fade Out.

Este es el Codigo que estoy usando en un KeyFrame:

Código :

import mx.transitions.Tween;
import mx.transitions.easing.*;

var transparencia:Tween;
var intervalID:Number;

btPortfolio.onRollOver = 
btSobreMi.onRollOver = 
btHabilidades.onRollOver = 
btContacto.onRollOver = 
function() {
    mcSlider.mueveY = this._y;
   clearInterval(intervalID);
   if (mcSlider._alpha <= 100) {
      transparencia = new Tween(mcSlider, "_alpha", Strong.easeIn, _alpha, 100, 0.3, true);
   }
}

btPortfolio.onRollOut = btPortfolio.onReleaseOutside =
btSobreMi.onRollOut = btSobreMi.onReleaseOutside =
btHabilidades.onRollOut = btHabilidades.onReleaseOutside =
btContacto.onRollOut = btContacto.onReleaseOutside =
function() {
   if (mcSlider._alpha >= 0) {
      intervalID = setInterval(easeOutSlider,300);
   }
}

function easeOutSlider (){
[flash width=100 height=105]http://jlv-design.com.ve/_swf/menuPrueba.swf[/flash]

   transparencia = new Tween(mcSlider, "_alpha", Strong.easeOut, _alpha, 1, 0.5, true);
}


El problema es que al hacer un rollOver sobre alguno de los botones este arranca con la animacion muy bien, pero en el momento de hacer el rollOut tengo que crear de nuevo el objeto transparencia para que haga el Fade Out y esto genera un problema con el setInterval, porque una vez que ya ha transcurrido ese tiempo y se ejecuta la funcion easeOutSlider para que desaparesca el objeto, al momento de hacer otro rollOver en cualquier otro boton, se distorciona la animacion ya que a pesar de que tengo el clearInterval para cancelar la ejecucion de otro Intervalo, el tween del intervalo anteior que ya se estaba ejecutando, continua y esto me genera el doble efecto, es decir mientras estoy haciendo el rollOver se esta ejecutando el rollOut.

En la ultima funcion (easeOutSlider) intente usar el metodo "transparencia.yoyo()" de la clase Tween para no tener que crear 2 objetos y no me pase ese problema, pero no funciona, simplemente no toma el yoyo().
Si alguien pudiera ayudarme a resolver ese problema se lo agradeceria.

Aqui les dejo el ejemplo del menu, hagan varios rollOver y rollOut a la vez en intervalos de tiempo distintos para que vean los errores en la animacion:


Por XArcanHellX

Claber

213 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 01 Jun 2009 08:04 pm
No utilices la clase Tween de Adobe, utiliza TweenMax que cada vez que crees una instancia de la clase en el objeto que vas a animar se elimina la anterior, eso sin comentar que su rendimiento es mejor y que tiene una cantidad de propiedades y métodos que la clase Tween de Adobe no tiene.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 02 Jun 2009 01:40 pm
Oooook dejame intentar a ver como me va con esta herramienta ;)
Gracias!!

Por XArcanHellX

Claber

213 de clabLevel



 

Venezuela

firefox

 

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