ACTIONSCRIPT 语言版本: 3.0 (AS2 版也有提供)

更新 及 更多文档请访问: http://www.TweenLite.com (这里的链接指向 AS3 版)

描述:
        缓动。 我们都在做。我们很多人都知道除了 Adobe's Tween 类之外，还有很多更好的动画引擎，（比如 Tweener）. 每种引擎都有它们各自的优缺点。
        最近几年，为了得到一个更紧凑的，跑得更快，效率更高的引擎，我创建了 TweenLite （我无法接受其它的一些引擎带来的文件尺寸上的负担）.它很快就融入到我的所有工作中。我告诉其它人，让大家能够从中获益，最终，我将它发布了出来。在过去的几年中，TweenLite越来越受欢迎，超乎了我的想像.
        基于此，我又添加了一些新的功能，并且尽量保持这个文件的尺寸，让它小于3K。 TweenFilterLite 扩充了 TweenLite 并且加入了滤镜缓动，包含了 ColorMatrixFilter 的一些效果，比如饱和、对比、增亮、色调，甚至是着色，但文件的尺寸始终没有超过3K。与 TweenLite 的做法相似，提供有AS2版和AS3版的类包下载。
TweenMax 比 TweenFilterLite 增加了更多的特性，包含 bezier 缓动，暂停/恢复，顺序执行等等。(见 www.TweenMax.com)
        我猜你会想“如果这个是‘轻量级的’，那么它一定会丢掉很多特性，让我用的时候会有点担心”。这种想法是对的，在这里缺少一些其它缓动引擎所包含的特效，但是我可以肯定的说，在过去几年我的工程（很多获奖的 flash 程序以及500强企业的项目中）中，我几乎一直都在用它，而它从没有让我失望过。
        我还真没发现过我还需要其它的功能。你可以对任何的属性（包括 DisplayObject 对象的音量和颜色）使用缓动函数，内置的延迟时间，回调函数，以及传递参数给这些回调函数，甚至根据数组进行缓动，统统只在一行代码中完成。如果你需要更多的特效，你可以装上TweenFilterLite 或者 TweenMax来用用。
        我也从来没有发现比这个更快的引擎。不同引擎执行效率的比较，请访问 http://blog.greensock.com/tweeing-speed-test/.

TweenLite参数说明:
        1) $ target : Object - 作为目标的对象， MovieClip或者其它对象
        2) $ duration : Number - 动画的时间长度（单位：秒）
        3) $ vars : Object – 对象，通过属性值，来存贮各种属性参数用于缓动。（如果你使用 TweenLite.from() 方法，这里的参数表示缓动的初始值）
        该对象所具有的属性：
                 alpha: alpha  目标对象应该完成 (或开始，当使用 TweenLite.from()时)的透明度级别.如果 target.alpha 是1，当缓动被执行的时候，你指定参数为 0.5，它将把透明度从 1 缓动到 0.5.
                 x: 改变 MovieClip的 x 位置,把这个值设置成你希望的 MovieClip 的结束位置(如果你使用的是 TweenLite.from()这个值表示开始位置). 
　　　　　　　　　　　( y scaleX scaleY rotation　等属性不再重复说明）
                特别的属性 (**可选的**):
                 delay : Number - 延迟缓动 (以秒为单位).
                    ease : Function - 缓动函数. 例如，fl.motion.easing.Elastic.easeOut 函数。默认的是 Regular.easeOut函数。
                 easeParams : Array - 用来存贮缓动公式所需要的额外数据. 当使用 Elastic 公式并且希望控制一些额外的参数，比如放大系数和缓动时间。大多数的缓动公式是不需要参数的，因此，你不需要给其它的缓动公式传递参数。
                 autoAlpha : Number - 用它来代替 alpha 属性，可以获得一些副加的效果，比如当 alpha 值缓动到 0时，自动将 visible 属性改为 false。当缓动开始前，autoAlpha 大于 0时，它将会把 visible 属性变成 true 。
                visible : Boolean - 在缓动结束时，想要指定 DisplayObject 的 visible 属性，请使用这个参数。
                 volume : Number - 对 soundTransform （MovieClip/SoundChannel/NetStream 等）对象中的volume属性（音量大小）进行缓动 
                tint : Number - 改变 DisplayObject 的颜色，设置一个16进制颜色值之后，当缓动结束时，目标对象将被变成这个颜色，（如果使用的是TweenLite.from()，这个值将表示目标对象开始缓动时的颜色)。举个例子，颜色值可以设定为： 0xFF0000。
                removeTint : Boolean - 要移除 DisplayObject 颜色，将这个参数设成 true 。
                frame : Number - 将 MovieClip 缓动到指帧频。
                onStart : Function - 在缓动开始时想要执行某个函数，就将函数的引用（通常是函数名）放到这里。如果缓动是带延迟的，那么在缓动开始前该函数不会被执行。
                onStartParams : Array - 为缓动开始时要执行的函数传递参数。(可选的)
                onUpdate : Function - 缓动过程中，每次更新时调用这里指定的函数(缓动开始后，每一帧被触发一次),
                onUpdateParams : Array - 给 onUpdate 参数指定的函数传递参数 (可选的)
                onComplete : Function - 缓动结束时执行的函数。 
                onCompleteParams : Array - 给 onComplete 参数指定的函数传递参数 (可选的)
                persist : Boolean - 值为 true 时，TweenLite 实例将不会自动被系统的垃圾收集器给收走。但是当新的缓动出现时，它还是会被重写（overwritten）默认值为 false.
                renderOnStart : Boolean - 如果你使用带有延迟缓动的 TweenFilterLite.from() ，并且阻止缓动的渲染（rendering ）效果，直到缓动真正开始，将这个值设为 true.默认情况下该值为 false ，这会让渲染效果立即被执行，甚至是在延迟的时间还没到之前。
                overwrite : int - 当前的缓动被创建以后，通过这个参数可以限制作用于同一个对象的其它缓动，可选的参数值有：
                        - 0 (没有): 没有缓动被重写。这种模式下，运行速度是最快的，但是需要注意避免创建一些控制相同属性的缓动，否则这些缓动效果间将出现冲突。
                        - 1 (全部): (这是默认值，除非 OverwriteManager.init() 被调用过)对于同一对象的所有缓动在创建时将会被完全的覆盖掉。
                                TweenLite.to(mc, 1, {x:100, y:200});
                                TweenLite.to(mc, 1, {x:300, delay:2}); //后创建的缓动将会覆盖掉先前创建的缓动，（可以起到这样的作用：缓动进行到一半时被中断，执行新的缓动 译者注）
                        - 2 (自动): (当 OverwriteManager.init() 被执行后,会根据具体的属性值进行选择)只覆盖对同一属性的缓动。 
                                TweenLite.to(mc, 1, {x:100, y:200});
                                TweenLite.to(mc, 1, {x:300}); //only  "x" 属性的缓动将被覆盖
                        - 3 (同时发生): 缓动开始时，覆盖全部的缓动。
                                  TweenLite.to(mc, 1, {x:100, y:200});
                                  TweenLite.to(mc, 1, {x:300, delay:2}); //不会覆盖先前的缓动，因为每二个缓动开始时，第一个缓动已经结束了。

举例: 
        将实例名为 "clip_mc" 的 MovieClip 透明度降到 50% (0.5) ，并将它 x 轴位置移动到 120 ，将音量将到 0，缓动总共用时 1.5 秒，代码如下：
                import gs.TweenLite;
                TweenLite.to(clip_mc, 1.5, {alpha:0.5, x:120, volume:0});

        如果希望使用更高级的缓动函数在 5 内，将 alpha 变到 0.5，将 x 移动 到 120 ，使用 "easeOutBack" 弹性函数，缓动整体延迟 2 秒发生，并且在缓动结束时，执行 "onFinishTween" 函数，并且为这个函数传递几个参数，(一个数值 5 以及对 clip_mc 的引用)，代码如下：
                import gs.TweenLite;
                import fl.motion.easing.Back;
                TweenLite.to(clip_mc, 5, {alpha:0.5, x:120, ease:Back.easeOut, delay:2, onComplete: onFinishTween, onCompleteParams:[5, clip_mc]});
                function onFinishTween(argument1:Number, argument2:MovieClip):void {
                        trace("The tween has finished! argument1 = " + argument1 + ", and argument2 = " + argument2);
                }

        如果你的舞台上的 MovieClip 已经停在了它的结束位置，你只想让它花上5秒种回到这个位置，(只需要改变 y 属性，比当前位置高 100 像素的位置，让它从那里下落), 代码如下（这次使用的是 TweenLite.from 译者注):
                import gs.TweenLite;
                import fl.motion.easing.Elastic;
                TweenLite.from(clip_mc, 5, {y:"-100", ease:Elastic.easeOut});


       

 

说明:
        - TweenLite类会让你的 Flash 文件增加 3kb大小。
        - 给参数值加上引号，表示对指定的属性进行相应操作。比如，使用 TweenLite.to(mc, 2, {x:"-20"}); 它将 mc.x 向左移动 20 像素，与此相同效果的代码是：TweenLite.to(mc, 2, {x:mc.x - 20});
        - 你可以用别的缓动函数替换 TweenLite 默认的缓动函数: Regular.easeOut.
        - 必须使用 Flash Player 9 或之后版本的播放器 (ActionScript 3.0)
        - 可以对任何 MovieClip 使用 "volume" 缓动,就比如：TweenLite.to(myClip_mc, 1.5, {volume:0});
        - 可以将 MovieClip 设定成某种颜色，使用 "tint" 参数,比如: TweenLite.to(myClip_mc, 1.5, {tint:0xFF0000});
        - 想要对数组内容进行缓动，将数值放到一个叫 endArray 的数组中即可，例如:
          var myArray:Array = [1,2,3,4];
          TweenLite.to(myArray, 1.5, {endArray:[10,20,30,40]});
        - 可以在任何时候终止缓动，使用 TweenLite.killTweensOf(myClip_mc); 函数。如果想强制终止缓动，可以传递一个 true 做为第二个参数，比如 
TweenLite.killTweensOf(myClip_mc, true);
        - 取掉延迟回调函数，用 TweenLite.killDelayedCallsTo(myFunction_func);这项功能可以用来控制回调函数的优先级。
        - 使用 TweenLite.from() 方法，可以使用对象从别的位置回到当前的位置。例如，你可以将对象在舞台上摆放整齐（缓动结束时的位置），然后利用 
缓动，让它们跑到那个位置上去，你可以将缓动的初始位置值 x 或 y 或 alpha (或者其它你需要的属性)当做参数传递给这个方法函数。

TweenLite 下载链接：
http://www.greensock.com/ActionS ... S3/TweenLiteAS3.zip
下载下来的类包中，有一个 TweenLiteAS3_Sample_1.swf ，初学者可以用它来观察各种缓动的效果，并且直接得到相关的执行代码。算是一个可视化设计的工具，不要错过。
下载到类包以后，解压缩到一个目录比如：d:\AS3Class ，在flash9 的首选参数－>ActionScript->ActionScript3.0设置中添加类目录，d:\AS3Class\TweenLiteAS3 即可正确引用到相关的类。


应用举例：
import gs.TweenLite;
import gs.easing.*;

stage.addEventListener(MouseEvent.CLICK, onCK);
function onCK(evt) {
        TweenLite.to(mc, 0.5, {x:mouseX, y:mouseY, rotation:360});
}
在舞台上点击，会让mc 元件旋转并跑动到鼠标位置。 

