【转】TweenFilterLite 参数说明

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:【转】TweenFilterLite 参数说明
  • 本文链接:http://zengrong.net/post/1126.htm

TweenFilterLite 继承自 TweenLite ,进行了功能上的扩充,提供了颜色、图象处理方面的一些简便的方法,如果对 Flash 中的矩阵有一些基本的了解之后,再来用它,会比较的得心应手,它有点像是将 Flash 的颜色矩阵和卷积矩阵揉合到一起,提供了更为简单的应用方法,因此,一并翻译出来供大家参考。

描述:

TweenFilterLite 继承自超轻量级的(大约3k)、强大的 TweenLite 核心类,新添加了滤镜缓动(模糊、发光、阴影、斜角滤镜、等等)和图像效果(调整对比度、色调、亮度、饱和度、灰度以及阀值),加起来大约 6k TweenFilterLite 类的语法结构与 TweenLite 相同。如果你还不熟悉 TweenLite ,推荐你先把它找出来看一下。(我也推荐你看一下先前翻译的 TweenLite 使用详解,即 TweenLite 类的描述文件—-译者注)

它提供了一种简便的方法,可以在同一时间对某个对象的多个属性进行缓动,包括 MovieClip 的位置、透明度、音量、颜色等。

就像 TweenLite 一样,TweenFilterLite 允许你指定延迟缓动(让缓动在指定的时间之后开始进行—-译者注),以及在缓动开始或结束时调用任何函数(同时还可以传递任意多个参数给这些函数),自动清除掉其它的对同一目标进行的缓动(从而避免冲突)、缓动数组,等等。使用这个类的一个很大的好处就是它非常努力地缩小了文件的尺寸(正如它名字中“Lite”所代表的含意)。外面还有一些其它的缓动引擎,但是根据我的经验,它们至少比这个文件要大上3倍以上,这在需要精确控制文件尺寸的情况下是不可接受的(比如制做 banner广告)。同样,我还尚未发现过比这更快的引擎。这里采用的语法是非常简单的,并且这个类不依赖于复杂的原型扩展手段,那样做通常会在一些编译器中制造难题。TweenFilterLite非常的简单、快捷、并且(依旧)非常的轻盈。

如果你还在寻找更多的功能,去 www.TweenMax.com 看一下 TweenFilterLite 的大哥 TweenMax 。

参数:

  • target : Object – 缓动的目标对象,对它的属性进行缓动
  • duration : Number – 动画的时长(单位:秒)
  • 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 (http://www.quasimondo.com),感谢他在 ColorMatrix 类中所做的工作,这个类对于图像效果真的非常有用。