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 (http://www.quasimondo.com),感谢他在 ColorMatrix 类中所做的工作,这个类对于图像效果真的非常有用。
相关文章:
TweenMax 参数说明 中文翻译
http://blog.5d.cn/user12/dzxz/200809/500547.html
TweenLite 参数说明 中文翻译
http://blog.5d.cn/user12/dzxz/200808/497831.html
TweenLite 的一个应用
http://blog.5d.cn/user12/dzxz/200808/497862.html
一个Flash 网页导航效果
http://blog.5d.cn/user12/dzxz/200811/506117.html
回复Comments
作者:
{commentrecontent}