Antes de leer este tip, es necesario que leeas la primera parte de la Clase Tween, ya que esta vez veremos las funciones para controlar las animaciones a medida que se ejecutan.
La clase Tween trae por defecto una serie de eventos que nos permiten controlar sus interpolaciones más efectivamente, vamos a ver uno a uno con un ejemplo de su funcionamiento.
onMotionChanged
Esta función nos permite asignar eventos medida que la animación se ejecuta, osea mientras dura; veamos un ejemplo, vamos a iniciar un movimiento en x y vamos a mostrar en un campo de texto la posición a cada instante.
Código :
import mx.transitions.Tween; import mx.transitions.easing.*; // var miTween:Tween = new Tween(miClip, "_x", Strong.easeInOut, 5, 320, 2, true); // miTween.onMotionChanged = function() { // out = "la posición en x es: " + Math.round(this.position); };
onMotionFinished
Con esta funcion podemos ejecutar acciones una vez finalizada la animacion. veamoslo con un ejemplo
Código :
import mx.transitions.Tween; import mx.transitions.easing.*; // var myTween:Tween = new Tween(miClip, "_x", Strong.easeInOut, 5, 320, 2, true); // myTween.onMotionFinished = function() { // out = "Tween finalizada."; };
onMotionStarted
Mediante esta función es posible asignar eventos al iniciarse la animación, ideal para inicializar variables, cabe aclarar que la función de por si no funciona sola, debe se llamada mediante miTween.start(); ya que se ejecuta una vez que la animación ha terminado y se vuelve a iniciar o bien si la animación ha sido detenida con miTween.stop(); Mejor veamos un ejemplo: vamos a declarar dos tweens, una para _x y otra para _alpha, de esta manera, vamos a detener el movimiento en x y suspenderlo hasta que la trancicion de alpha se haya ejecutado
Código :
import mx.transitions.Tween; import mx.transitions.easing.*; // var transparencia:Tween = new Tween(miClip, "_alpha", Strong.easeInOut, 0, 100, 2.5, true); var moviemiento:Tween = new Tween(miClip, "_x", Strong.easeInOut, 5, 320, 2.5, true); // movimiento.stop(); // transparencia.onMotionFinished = function(){ movimiento.start(); } // movimiento.onMotionStarted = function() { // out = "iniciando movimiento en x..."; };
onMotionResumed
Con esta función podemos "pausar" una animación y reanudarla desde el momento donde fue detenida. Del mismo modo que con onMotionStarted ésta debe ser llamada mediante miTween.resume(); Vamos a verlo con un ejemplo: tendremos nuestra animación mas un botón para detenerla y otro para reanudarla
Yoyo() es una función que sirve para retroceder una animación, algo muy útil por ejemplo cuando hacemos botones; veamos un ejemplo de un botón con alpha:
Muy buen tip realmente es muy util lo que haz dejado muchas gracias Por:GersonM_blog
Prefiero usar Tweener. Por:EzeQL.com_blog
¿En ActionScript 3? Por:Buenisimo_blog
Da la sensación que en el último ejemplo por la velocidad, el poco espacio entre 5 y 350 y por ende la tremenda frenada a lo Formula 1 . Se corta el sol... ¿ó me parece?... mmmm... ese efecto me va a dejar virolo ajajjaa
<b>PD:</b> ¿Algún ejemplo para incluirlo en algún juego..F1? Por:Buenisimo_blog
Me parece muy buen tip... pero, habiendo actionscript 3, no iria siendo hora de olvidarnos del 2.0 y pasar al 3? Por:Vigotes_blog
muy buen tip... eso ayudara a muchos... Vigotes_blog si te as dado cuenta hay un espacio para AS3 aqui, seria weno q lo revises.... Por:leon2086_blog
aquellos tiempo del Tween que grandes recuerdos me trae... buen tip Por:eldervaz
Se ve muy bien penHolder theTangerine !!!... Por:M@U
muy bueno el tip Por:ronald_blog
Muy copado!! jeje se me vienen miles de ideas con esto Por:Daniel_blog
la clase tween funciona a la perfeccion pero cuando quiero utilizar onMotionFinished me tira un error q dice q no es un propiedad...q puede ser?.... gracias Por:ARIEL_blog