La clase Tween Parte 2: Creación de un rollover avanzado
Asociados a la clase Tween existen diversos métodos que podemos utilizar:
- Tween.yoyo(): Indica a la animación interpolada que continúe desde su valor actual hasta un nuevo valor.
- Tween.fforward(): Avanza la animación interpolada directamente al final de la animación.
- Tween.nextFrame(): Avanza la animación interpolada al siguiente fotograma.
- Tween.prevFrame(): Dirige la animación interpolada al fotograma anterior al actual.
- Tween.resume(): Reanuda una animación interpolada a partir del punto en que se ha detenido en la animación.
- Tween.rewind(): Retrocede una animación interpolada hasta el principio de la misma.
- Tween.start(): Inicia la animación interpolada desde el principio.
- Tween.stop(): Detiene la animación interpolada en su posición actual.
- Tween.toString(): Devuelve el nombre de clase, "[Tween]".
- Tween.yoyo(): Ordena a la animación interpolada que se reproduzca a la inversa desde el último sentido de incrementos de la propiedad de interpolación.
En el siguiente ejemplo utilizará Tween.yoyo() para hacer un rollover de botones avanzados:
1.- Se han creado cuatro cuadrados como clips de película, con los nombres de instancia "Cuadro1_mc", "Cuadro2_mc", "Cuadro3_mc" y "Cuadro4_mc".
2.- He variado los puntos de registro para que en todos los casos el redimensionamiento sea hacia los extremos.
3.- Importamos la clase tween y las funciones de easing.
import mx.transitions.Tween; import mx.transitions.easing.*;
4.- Ahora tan sólo deberemos asignar las acciones que se efectuarán al evento onRollOver y al evento onRollOut. En el evento onRollover redimensionaremos tanto a lo ancho como a lo alto el clip y al evento onRollOut reproduciremos la animación a la inversa para que vuelva a su estado original.
_root.Cuadro1_mc.onRollOver = function() {
miXTween = new mx.transitions.Tween(this, "_xscale", Bounce.easeOut, 100, 200, 1.5, true);
miYTween = new mx.transitions.Tween(this, "_yscale", Bounce.easeOut, 100, 200, 1.5, true);
};
_root.Cuadro1_mc.onRollOut = function() {
miXTween.yoyo();
miYTween.yoyo();
};
Algunas entradas relacionadas:
- Listas desplegables dependientes
- ColorMatrix Parte I
- DropShadowFilter Parte I
- Controlar Actionscript mediante la función asfunction
- Utilizar fscommand() para comunicar Flash con otras aplicaciones
- Scroll de texto con easing
- Aplicar ruido a una imagen con Flash
También te puede interesar:
| 15 plugins jQuery para mejorar nuestros layouts | Cómo reducir el número de peticiones HTTP de una web | Cómo testear tu Javascript con QUnit | Scalable CSS Buttons Using PNG and Background Colors | StoryPlace |
Comentarios
| 1 |
|
NICOLAS Que tal, estimados ojalá me puedan ayudar Tengo un Media Controller insertado en mi fla principal que llama a un swf externo loadMovie("flashmo_107_slider.swf", "contenedor"); este swf externo es un banner rotativo de imagenes mediante la función tween, la función está adjunta, estoy tratando de hacer un botón externo a este swf, xq como verán ya hay unos internos que funcionan bien fm_previous y fm_previous, PERO QUIERO HACERLOS EXTERNOS entonces pensé en algo asà on (release) { _root.flashmo_slider.INTENTE CON VARIAS FORMAS LLAMANDO FUNCIONES ETC Y NO LLAMA A NADA } flashmo_slider es el nombre del simbolo que contiene el banner rotativo del swf externo GRACIAS [as]stop(); import mx.transitions.Tween; import mx.transitions.easing.*; flashmo_item._visible = false; var xml_file:String = "flashmo_107_list.xml"; var folder:String = "thumbnails/"; var auto_duration:Number = 5000; // where 1 second equals 1000 var auto_play:Boolean = true; // true = ON | false = OFF var tween_duration:Number = 0.6; // in seconds var item_filename:Array = new Array(); var item_url:Array = new Array(); var item_url_target:Array = new Array(); var item_title:Array = new Array(); var item_description:Array = new Array(); var total:Number; var i:Number; var interval_id:Number; var current:Number = 0; var xml:XML = new XML(); xml.onLoad = function() { item_list.fm_item._visible = false; var nodes = this.firstChild.childNodes; total = nodes.length; for( i = 0; i |























Josep Viciana en Twotiny Icon Set


