class transition
{
public static function blinds(obj, direction:Number, duration:Number, numStrips:Number, dimension:Number, easing:Function):Object
{
return (init(obj, {type:1, direction:direction, duration:duration, numStrips:numStrips, dimension:dimension, easing:easing}));
}
public static function fade(obj, direction:Number, duration:Number, easing:Function):Object
{
return (init(obj, {type:2, direction:direction, duration:duration, easing:easing}));
}
public static function fly(obj, direction:Number, duration:Number, startPoint:Number, easing:Function):Object
{
return (init(obj, {type:3, direction:direction, duration:duration, startPoint:startPoint, easing:easing}));
}
public static function iris(obj, direction:Number, duration:Number, startPoint:Number, shape:Number, easing:Function):Object
{
return (init(obj, {type:4, direction:direction, duration:duration, startPoint:startPoint, shape:shape, easing:easing}));
}
public static function photo(obj, direction:Number, duration:Number, easing:Function):Object
{
return (init(obj, {type:5, direction:direction, duration:duration, easing:easing}));
}
public static function pixelDissolve(obj, direction:Number, duration:Number, xSections:Number, ySection:Number, easing:Function):Object
{
return (init(obj, {type:6, direction:direction, duration:duration, xSections:xSections, ySection:ySection, easing:easing}));
}
public static function rotate(obj, direction:Number, duration:Number, ccw:Boolean, degrees:Number, easing:Function):Object
{
return (init(obj, {type:7, direction:direction, duration:duration, ccw:ccw, degrees:degrees, easing:easing}));
}
public static function squeeze(obj, direction:Number, duration:Number, dimension:Number, easing:Function):Object
{
return (init(obj, {type:8, direction:direction, duration:duration, dimension:dimension, easing:easing}));
}
public static function wipe(obj, direction:Number, duration:Number, startPoint:Number, easing:Function):Object
{
return (init(obj, {type:9, direction:direction, duration:duration, startPoint:startPoint, easing:easing}));
}
public static function zoom(obj, direction:Number, duration:Number, easing:Function):Object
{
return (init(obj, {type:10, direction:direction, duration:duration, easing:easing}));
}
private static function init(obj, specs:Object)
{
var tm = new mx.transitions.TransitionManager(obj);
tm.onTransitionChanged = new Function();
tm.onTransitionFinished = new Function();
var listener = new Object();
var transObj = {};
if (specs.direction == 0)
{
transObj.direction = mx.transitions.Transition.IN;
listener.allTransitionsInDone = function(evt:Object)
{
clearInterval(interval);
tm.onTransitionFinished();
};
tm.addEventListener("allTransitionsInDone", listener);
}
else
{
transObj.direction = mx.transitions.Transition.OUT;
listener.allTransitionsOutDone = function(evt:Object)
{
clearInterval(interval);
tm.onTransitionFinished();
};
tm.addEventListener("allTransitionsOutDone", listener);
}
transObj.duration = specs.duration;
transObj.easing = (specs.easing == undefined) ? mx.transitions.easing.None.easeNone : specs.easing;
switch (specs.type)
{
case 1 :
transObj.type = mx.transitions.Blinds;
transObj.numStrips = specs.numStrips;
transObj.dimension = specs.dimension;
break;
case 2 :
transObj.type = mx.transitions.Fade;
break;
case 3 :
transObj.type = mx.transitions.Fly;
transObj.startPoint = specs.startPoint;
break;
case 4 :
transObj.type = mx.transitions.Iris;
transObj.startPoint = specs.startPoint;
transObj.shape = (specs.shape == 1) ? mx.transitions.Iris.SQUARE : mx.transitions.Iris.CIRCLE;
break;
case 5 :
transObj.type = mx.transitions.Photo;
break;
case 6 :
transObj.type = mx.transitions.PixelDissolve;
transObj.xSection = specs.xSection;
transObj.ySection = specs.ySection;
break;
case 7 :
transObj.type = mx.transitions.Rotate;
transObj.degrees = specs.degrees;
transObj.ccw = specs.ccw;
break;
case 8 :
transObj.type = mx.transitions.Squeeze;
transObj.dimension = specs.dimension;
break;
case 9 :
transObj.type = mx.transitions.Wipe;
transObj.startPoint = specs.startPoint;
break;
case 10 :
transObj.type = mx.transitions.Zoom;
break;
}
obj._visible = true;
tm.startTransition(transObj);
var interval = setInterval(function ()
{
tm.onTransitionChanged();
}, 0);
return (tm);
}
}