/** * VERSION: 1.0 * DATE: 10/18/2009 * AS3 * UPDATES AND DOCUMENTATION AT: http://www.TweenMax.com **/ package com.greensock.easing { import flash.utils.Dictionary; import com.greensock.TweenLite; /** * TweenMax (AS3 only) has built-in algorithms that speed up the processing of certain easing equations but in order * to take advantage of those optimizations, you must activate the easing equations first (you only need to * activate them ONCE in your swf). The following easing equations from the com.greensock.easing package are * eligible for activation: * *
*
* * EXAMPLE

* * * import com.greensock.easing.*;

* * //activate the optimized ease classes
* FastEase.activate([Strong, Linear, Quad]);

* * //then tween as usual (you don't have to do anything special in your tweens)
* TweenMax.to(mc, 2, {x:200, ease:Linear.easeNone});

*
* * Once activated, the easing calculations run about 35-80% faster! Keep in mind that the easing calculations are only one small part * of the tweening engine, so you may only see a 2-15% improvement overall depending on the equation and quantity of simultaneous tweens. * * Notes:
* * * @param easeClasses An Array containing the easing classes to activate, like [Strong, Linear, Quad]. It will automatically activate the easeIn, easeOut, easeInOut, and (if available) easeNone easing equations for each class in the Array. */ public class FastEase { /** * Normally you should use the FastEase.activate() method to activate optimized eases, but if you * want to activate an ease that is NOT in the com.greensock.easing package (for example * fl.motion.easing.Quadratic), you can register individual easing equations with * this method. For example: * * * import fl.motion.easing.Quadratic;
* import com.greensock.easing.FastEase;

* * FastEase.activateEase(Quadratic.easeIn, 1, 1); *
* * @param ease The easing equation (function) to activate. For example, Quadratic.easeIn * @param type The type of ease (in, out, or inOut) where easeIn is 1, easeOut is 2, and easeInOut is 3. * @param power The magnitude or power of the ease. For example, Linear is 0, Quad is 1, Cubic is 2, Quart is 3 and Quint and Strong are 4. */ public static function activateEase(ease:Function, type:int, power:uint):void { TweenLite.fastEaseLookup[ease] = [type, power]; } /** * TweenMax (AS3 only) has built-in algorithms that speed up the processing of certain easing equations but in order * to take advantage of those optimizations, you must activate the easing equations first (you only need to * activate them ONCE in your swf). The following easing equations from the com.greensock.easing package are * eligible for activation: * *
*
* * EXAMPLE

* * * import com.greensock.easing.*;

* * FastEase.activate([Strong, Linear, Quad]);

*
* * Notes:
* * * @param easeClasses An Array containing the easing classes to activate, like [Strong, Linear, Quad]. It will automatically activate the easeIn, easeOut, easeInOut, and (if available) easeNone easing equations for each class in the Array. */ public static function activate(easeClasses:Array):void { var i:int = easeClasses.length, easeClass:Object; while (i--) { easeClass = easeClasses[i]; if (easeClass.hasOwnProperty("power")) { activateEase(easeClass.easeIn, 1, easeClass.power); activateEase(easeClass.easeOut, 2, easeClass.power); activateEase(easeClass.easeInOut, 3, easeClass.power); if (easeClass.hasOwnProperty("easeNone")) { activateEase(easeClass.easeNone, 1, 0); } } } } } }