Me he llevado una grata sorpresa al ojear la ayuda de flash 8. Se trata de la clase mx.transitions.TransitionManager, que permite trabajar con una serie de transiciones de una manera muy ágil. Supongo que casi todos los programadores, nos hemos imaginado, o tratado de implementar una clase de este tipo, que "encapsule" el comportamiento del conjunto de transiciones de nuestro repositorio. Pues bien, para aquellos que no lo han hecho todavía, Macromedia se les ha adelantado.
Editado: después del comentario de mi amigo manjeet, entiendo que este post, puede ser muy arduo sin un ejemplo. Aquí os pongo el resultado del código:
y el código.
-
-
import mx.transitions.*;
-
import mx.transitions.easing.*;
-
var animador:TransitionManager = new TransitionManager(mc);
-
// configuramos nuestros objetos de transiciones
-
var objBlinds:Object = {type:Blinds, direction:Transition.IN, duration:2, easing:None.easeNone, numStrips:10, dimension:0};
-
var objFadeTransition:Object = {type:Fade, direction:Transition.IN, duration:3, easing:None.easeNone};
-
var objFlyTransition:Object = {type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:9};
-
var objIrisTransition:Object = {type:Iris, direction:Transition.IN, duration:2, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE};
-
var objPhotoTransition:Object = {type:Photo, direction:Transition.IN, duration:1, easing:None.easeNone};
-
var objPixelTransition:Object = {type:PixelDissolve, direction:Transition.IN, duration:2, easing:None.easeNone, xSections:10, ySections:10};
-
var objRotateTransition:Object = {type:Rotate, direction:Transition.IN, duration:3, easing:Strong.easeInOut, ccw:false, degrees:720};
-
var objSqueezeTransition:Object = {type:Squeeze, direction:Transition.IN, duration:2, easing:Elastic.easeOut, dimension:1};
-
var objWipeTransition:Object = {type:Wipe, direction:Transition.IN, duration:2, easing:Elastic.easeOut, startPoint:1};
-
var objZoomTransition:Object = {type:Zoom, direction:Transition.IN, duration:2, easing:Elastic.easeOut};
-
// rellenamos nuestro combo
-
combo.addItem({data:objBlinds, label:"Blinds"});
-
combo.addItem({data:objFadeTransition, label:"Fade"});
-
combo.addItem({data:objFlyTransition, label:"Fly"});
-
combo.addItem({data:objIrisTransition, label:"Iris"});
-
combo.addItem({data:objPhotoTransition, label:"Photo"});
-
combo.addItem({data:objPixelTransition, label:"PixelDissolve"});
-
combo.addItem({data:objRotateTransition, label:"Rotate"});
-
combo.addItem({data:objSqueezeTransition, label:"Squeeze"});
-
combo.addItem({data:objWipeTransition, label:"Wipe"});
-
combo.addItem({data:objZoomTransition, label:"Zoom"});
-
// cargamos el evento change
-
var obj:Object = new Object();
-
obj.change = function(evt_obj:Object):Void {
-
var seleccion:Object = evt_obj.target.selectedItem;
-
animador.startTransition(seleccion.data);
-
};
-
combo.addEventListener("change", obj);
-
var obj2:Object = new Object();
-
// cargamos el eveno
-
obj2.allTransitionsInDone = function(eventObj:Object) {
-
trace("evento despachado, fin de la animación");
-
};
-
animador.addEventListener("allTransitionsInDone", obj2);
-
-

