TweenFilterLite 中文说明文档
Tags: 说明文, 中文
TweenFilterLite 继承自 TweenLite ，进行了功能上的扩充，提供了颜色、图象处理方面的一些简便的方法，如果对 Flash 中的矩阵有一些基本的了解之后，再来用它，会比较的得心应手，它有点像是将 Flash 的颜色矩阵和卷积矩阵揉合到一起，提供了更为简单的应用方法，因此， 一并翻译出来供大家参考。
/*
版本: 7.14
日期: 6/10/2008
ACTIONSCRIPT 版本: 3.0 (网站提供有 AS2 版的类))
更新及更多详细文档，请访问: http://www.TweenFilterLite.com (链接到 AS3 版)
中文翻译：独自行走【闪航AS】 （英文名 Richard ) 博客 http://dzxz.blog.5d.cn
描述:
TweenFilterLite 继承自超轻量级的（大约3k）、强大的 TweenLite 核心类，新添加了滤镜缓动（模糊、发光、阴影、斜角滤镜、等等）和图像效果（调整对比度、色调、亮度、饱和度、灰度以及阀值），加起来大约6k
TweenFilterLite 类的语法结构与 TweenLite 相同。如果你还不熟悉 TweenLite ，推荐你先把它找出来看一下。（我也推荐你看一下先前翻译的 TweenLite 使用详解，即 TweenLite 类的描述文件----译者注）
它提供了一种简便的方法，可以在同一时间对某个对象的多个属性进行缓动，包括 MovieClip 的位置、透明度、音量、颜色等。
就像 TweenLite 一样，TweenFilterLite 允许你指定延迟缓动（让缓动在指定的时间之后开始进行----译者注），以及在缓动开始或结束时调用任何函数（同时还可以传递任意多个参数给这些函数）， 自动清除掉其它的对同一目标进行的缓动（从而避免冲突）、缓动数组，等等。使用这个类的一个很大的好处就是它非常努力地缩小了文件的尺寸（正如它名字中 “Lite”所代表的含意）。外面还有一些其它的缓动引擎，但是根据我的经验，它们至少比这个文件要大上3倍以上，这在需要精确控制文件尺寸的情况下是不 可接受的（比如制做 banner 广告）。同样，我还尚未发现过比这更快的引擎。这里采用的语法是非常简单的，并且这个类不依赖于复杂的原型扩展手段，那样做通常会在一些编译器中制造难 题。TweenFilterLite 非常的简单、快捷、并且（依旧）非常的轻盈。
如果你还在寻找更多的功能，去 www.TweenMax.com 看一下 TweenFilterLite 的大哥 TweenMax 。
参数:
1) $ target : Object - 缓动的目标对象，对它的属性进行缓动
2) $ duration : Number - 动画的时长（单位：秒）
3) $ vars : Object - 对象类型的参数，该对象包含了所有的需要缓动的属性，属性中保存的是缓动结束时的目标值（如果使用 TweenFilterLite.from() 方法，属性中保存的是缓动开始时的初始值）。 所有的滤镜都是通过对象的属性来传递的(属性的名称必须准确，比如：blurFilter, glowFilter, colorMatrixFilter, 等等)，滤镜对象可以包含任意多个与滤镜相关的属性，比如 blurX, blurY, contrast, color, distance, colorize, brightness, highlightAlpha, 等等。 
    专有属性: 
     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 。
     volume : Number - 对 MovieClip 或 SoundChannel 对象中的 volume 属性（音量大小）进行缓动。该属性表示的是缓动结束时的音量值（如果使用的是 TweenLite.from()，这个属性将表示目标对象开始缓动时的音量)
     tint : Number - 改变 DisplayObject 的色调或颜色，设置一个16进制颜色值，做为缓动结束时，目标对象的颜色值，（如果使用的是 TweenLite.from()，这个值将表示目标对象开始缓动时的颜色)。例如，颜色值可以设定为： 0xFF0000。如果要移除颜色，只需要传递一个 null 值给 tint 属性。( TweenLite 中使用的是 removeTint 属性----译者注)  
     frame : Number - 将 MovieClip 缓动到指帧频。
     onStart : Function - 在缓动开始时想要执行某个函数，就将函数的引用（通常是函数名）放到这里。当缓动是带延迟的，这一点会非常有用。
     onStartParams : Array - 为缓动开始时要执行的函数传递参数。(可选的)
     onUpdate : Function - 缓动过程中，每次更新属性值时，会执行这里指定的函数(缓动开始后，每一帧被触发一次)。
     onUpdateParams : Array - 给 onUpdate 参数指定的函数传递参数 (可选的)
     onComplete : Function - 缓动结束时执行的函数。 
     onCompleteParams : Array - 给 onComplete 参数所指定的函数传递参数 (可选的)
     renderOnStart : Boolean - 当使用带有延迟缓动的 TweenFilterLite.from() ，并且希望阻止缓动的渲染（rendering ）效果，直到缓动真正开始，将这个值设为 true.默认情况下该值为 false ，这会让渲染效果立即被执行，甚至是在延迟尚未结束之前。
     overwrite : Boolean - 如果 不 希望当前的缓动效果自动覆盖到其它的影响同一属性的缓动，请确保这个值设为 false。
     blurFilter : Object - 应用模糊滤镜，需要传递一个具有下列（一个或多个）属性的对象做为参数：blurX（横向的模糊度）, blurY（纵向的模糊度）, quality（品质,默认值为2）
     glowFilter : Object - 应用发光滤镜，需要传递一个具有下列（一个或多个）属性的对象做为参数：alpha（通明度），blurX , blurY , color（颜色），strength（强度）, quality ，inner（内侧发光），knockout（挖空）
     colorMatrixFilter : Object -应用颜色矩阵滤镜，需要传递一个具有下列（一个或多个）属性的对象做为参数：colorize（色调），amount（总量），contrast（对比 度），brightness（亮度），saturation（饱和度），hue（色相），threshold（阀值），relative（相关性）， matrix（颜色矩阵）
     dropShadowFilter : Object - 应用阴影滤镜，需要传递一个具有下列（一个或多个）属性的对象做为参数：alpha, angle（角度）, blurX, blurY, color, distance（距离）, strength, quality
     bevelFilter : Object - 应用斜角滤镜，需要传递一个具有下列（一个或多个）属性的对象做为参数：angle, blurX, blurY, distance, highlightAlpha（高亮区的透明度）, highlightColor（高亮区的颜色），shadowAlpha（阴影区的透明度）, shadowColor（阴影区的颜色）, strength（强度）, quality

举例: 
一个简单示例，将 clip_mc 的模糊度从当前值，经过1.5秒后，模糊到20，代码如下：  

  import gs.TweenFilterLite;
  TweenFilterLite.to(clip_mc, 1.5, {blurFilter:{blurX:20, blurY:20}});

下面的代码演示的是连续缓动的例子，首先用 2 秒钟的时间改变 MovieClip 的颜色，然后用 1 秒种进行模糊处理（第二个缓动延迟了两秒后进行----译者注）：
  import gs.TweenFilterLite;
  TweenFilterLite.to(clip_mc, 2, {colorMatrixFilter:{colorize:0xFF0000, amount:1}});
  TweenFilterLite.to(clip_mc, 1, {blurFilter:{blurX:20, blurY:20}, delay:2, overwrite:false});
  
更高级的应用，如果希望在 5 秒种的时间里将影片剪辑 clip_mc 的饱和度降到 0 ，推迟 2 秒启动缓动，缓动结束时调用“onFinishTween”函数，并且为这个函数传递一些参数（数值 5 和 clip_mc 的引用)，代码如下：
  
  import gs.TweenFilterLite;
  import fl.motion.easing.Back;
  TweenFilterLite.to(clip_mc, 5, {colorMatrixFilter:{saturation:0}, 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);
  }

如果舞台上的影片剪辑已经具备了期望的缓动结束时的属性值，你希望从某个色调的版本（比如 红色：0xFF0000）缓动到当前的属性状态，可以使用下面的代码：
  
  import gs.TweenFilterLite;
  TweenFilterLite.from(clip_mc, 5, {type:"color", colorize:0xFF0000});  

备注:
- 这个类 (包含它的父类 TweenLite ) 将会让你的 Flash 文件总共增加 6kb 。
- 需要 Flash 9 播放器或之后的版本( 支持 ActionScript 3.0 的播放器 )。
- 对所有滤镜来说，Quality （品质）参数的默认值为 "2" ，但是你可以通过传递参数来改变这一设置。
-  Flash 中已经有自带的图像滤镜功能 （ColorMatrixFilter），该功能需要使用到矩阵，TweenFilterLite 提供了静态方法，可以直接进行调用，用于控制 ColorMatrixFilter 中使用的矩阵（因此，直接使用即可，不必缓动任何东西）。例如，可以通过下面的代码改变矩阵的颜色：
   var myNewMatrix:Array = TweenFilterLite.colorize(myOldMatrix, 0xFF0000, 1);
- 特别鸣谢 Mario Klingemann 感谢他在 ColorMatrix 类中所做的工作，这个类对于图像效果真的非常有用。 
