您的位置:首页 > 移动开发 > Objective-C

TweenMax 参数申明(中文翻译)

2012-10-10 15:26 513 查看
TweenMax 参数申明(中文翻译)
Admin
2011年11月10日
TweenMax 建树在 TweenLite 和TweenFilterLite 根蒂根基之上,是以,又揉合了这二者的功能,使得功能加倍的齐备,然则若是说易用性,感觉还是 TweenLite 来得便利一些。我的译文是从 TweenLite 开端的,接着是  TweenFilterLite 最后是  TweenMax ,这也正好是这个类成长的轨迹,沿着这个轨迹一路读过来,会感觉轻易懂得很多。

/*

版本: 1.17

日期: 6/10/2008

ACTIONSCRIPT 版本: 3.0 (网站供给有 AS2 版本的类)

更新及更多具体文档,请接见: http://www.TweenFilterLite.com (链接到 AS3 版)

中文翻译:独自行走【闪航AS】 (英文名 Richard ) 博客 http://dzxz.blog.5d.cn
描述:

 TweenMax 建树在 TweenLite 核心类以及它的年老 TweenFilterLite 根蒂根基之上,它为 Tween 家族增长了新的受迎接的功能(尽管只是锦上添花),从而使家族加倍的强大,比如贝赛尔缓动、暂停/持续才能,简便的连气儿缓、16进制色彩缓动、以及更多的内容。

 TweenMax 采取了与它的兄弟类似的易于进修的语法布局。实事上,因为它扩大自它们,TweenMax 可以做任何 TweenLite 和/或者  TweenFilterLite 能做的事,还加上了更多的特点。那么为什么要建树 3 个类,而不是 1 个呢?问的好,我的目标是:效力最大化,尺寸最小化。率直的说,TweenLite 可能是所有的法度员在 90% 的项目中都须要用到的,而它仅有 3k。相对它的功能来说,它是很是高效和紧凑的。

 然则若是你须要对滤镜进行缓动,或者更雄厚的图像结果,比如说饱和度(saturation)、对比度(contrast)、色相(hue)、调色等等进行把握,

 那就装上 TweenFilterLite 统共 6k 。还想要的更多? No problem (没题目)-- TweenMax 已经在统共 8k 的大小里面塞满了足够多的功能。

 想查看相干的功能对比图,请接见 www.TweenMax.com 以获取更多信息。

( TweenMax 类包中直接包含有自力的 TweenLite 和 TweenFilterLite 类,是以下载这一个包就可以了,在 Flash 类路径中添加的时辰,也只须要添加这一个路径就可以了----译者注)

 TweenMax 发了然一种全新的功能,叫做 "bezierThrough"(暂译为 贝塞尔通路),这个功能容许你定义一些点,经由过程贝塞尔曲线连接这些点,

 (凡是的把握点只是用来拉近曲线,这里的点直接在曲线的路径上)。当然,若是你愿意,你可以用更正规的贝塞尔曲线。今朝,TweenMax 增长了下列功能(相对于 TweenFilterLite 而言):

  - 进行贝塞尔缓动(包含指定通路 THROUGH 点 和 活动对象的主动方位导航(在贝塞尔曲线中移动时,对象的扭转角度是主动把握的,译者注))

  - 连气儿的缓动 或称为 序列化的缓动

  - 对 对象数组(数组中存放了不合的对象,译者注) 中的对象进行同一的缓动,应用 allTo() 和 allFrom()

  - 缓动中的 暂停/持续 功能,应用 pause() 和 resume() 办法,或者 "paused" 属性 (比如 myTween.paused = true)

  - isTweening 静态办法,用来断定一个对象是否正在进行缓动(比如 TweenMax.isTweening(my_mc))

  - 跳转至缓动的任何时段,应用 "progress" 属性。输入一个 0 到 1 之间的数值。 progress 值为零,将会把缓动的过程跳转到初始阶段,值为 1 时,跳转至 100% 完成状况,值为 0.5 时,将转至缓动过程的半山腰地位。

    例如: myTween.progress = 0.5;

  - 对 16 进制的色彩进行缓动,应用 hexColors 属性

  - 获取缓动结果的实例数组,该数组中包含了加在一个指定的目标对象上的所有的缓动结果的实例,该数组可以容纳 TweenMax 和 TweenLite 和 TweenFilterLite 三种类型的缓动实例。

    例如: TweenMax.getTweensOf(my_mc); // (若是 my_mc 上应用了不止一个的缓动结果,那么这里将返回一个数组,数组中是不合的缓动结果的实例,可以用来对每个缓动进行及时的把握,译者注)

  - 获取 TweenMax (和 TweenLite 和 TweenFilterLite) 的实例数组,应用用静态函数 getAllTweens()

  - 中断(杀死)所有的缓动(以及可选的完成项目组缓动)

  - 暂停/持续 全部的缓动

参数:

 1) ¥ target : Object - 目标 MovieClip (或其它对象),对它的属性进行缓动

 2) ¥ duration : Number - 动画的时候长度(单位:秒)

 3) ¥ vars : Object - 一个包含了多种属性的对象,用来存贮缓动停止时的各类属性值(若是你应用 TweenLite.() 办法,这里的参数默示缓动的初始值)。

        例如:

        alpha: 目标对象在缓动停止时的 alpha (不透明度的级别)值。(当应用 TweenMax.()时,默示开端缓动时的 alpha 值)

       举个例子,若是 target_obj.alpha 是 1,当这个缓动代码被履行时,将 alpha 参数设成 0.5 ,它将实现从 1 到 0.5 的渐变缓动。

        x: 想要改变 MovieClip 的 x 地位,只须要将这个参数值设成你欲望的缓动停止时的值即可。(若是应用 TweenMax.(),则默示缓动开端时的 x 值)

    

    专有属性:

     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 的音量,将缓动停止时的音量值写在这里即可。(若是应用 TweenMax.(),这里的值默示缓动开端时的音量).

     tint : Number - 改变可显示对象(DisplayObject)的色调/色彩,将缓动停止时的16进制值色彩值(比如 0 xFF0000)写在这里即可。(若是应用 TweenMax.(),这里的值默示缓动开端时的色彩值).

                      若是想要移除色彩,传一个 null 做为色彩值即可。

     frame : Number - 将 MovieClip 缓动到指定的帧频

     bezier : Array - Bezier 缓动,容许你以非线性的体式格式进行缓动。例如,将一个 MovieClip 从原始的 (0,0) 的地位,向右移动500像素,到(500,0),在缓动的中心向下曲折。只须要向贝赛尔数组中传递多个对象,每一个都是一个把握点(关于把握点是如何工作的请参考 Flash 的 curveTo() 画图办法相干申明)。在这个例子中,假设我们的把握点是 x/y 坐标

250,50。把 my_mc 放到 0,0 地位,然后履行下面的代码:          TweenMax.to(my_mc, 3, {_x:500, _y:0, bezier:[{_x:250, _y:50}]});

     bezierThrough : Array - 与上方的贝赛尔数组类似,然则它接管的不是把握点,而是贝赛尔曲线要经过的地位点。与把握点比拟,如许的用法加倍直观。

     orientToBezier : Array (或者 Boolean 类型) - 设计师/开辟人员经常用到的一个结果,让 MovieClip/Sprite 主动调剂自身的标的目标(改变 rotation ),使之合适贝赛尔路径的标的目标(就像是汽车在盘曲的路子上须要络续调剂标的目标一样----译者注)。orientToBezier 使得这一切变得简单。为了更正确的调剂 rotation 属性,TweenMax 须要 4 方面的信息: 

          1) 地位属性 1 (凡是为 "x")

          2) 地位属性 2 (凡是为 "y")

          3) 扭转属性 (凡是为 "rotation")

          4) 扭转的度数(可选的 - 让它更轻易的正确对准 MovieClip )

         当 orientToBezier 属性为数组时,该(容器)数组中的每个元素是包含了一组数据的数组(形如 [[x1,y1,rota1,ang1],[x2,y2,rota2,ang2]]----译者注)。

         为了获得最大的灵活性,你可以向容器数组中传递随便率性数量的数组,逐个的指定扭转属性。这在进行 3D 工作进会很便利,因为你可以扭转多个坐标轴。若是进行的是标准的 2D x/y 坐标系贝赛尔缓动,只须要传递一个布尔值 true ,然后  TweenMax 将会应用一个典范的数组设置 [["x", "y", "rotation", 0]]。 

         提示:不要忘了这里存在着容器数组(重视:数组前后有两层方括号)

     hexColors : Object - 尽管 16 进制色彩是一种技巧上应用的数字,但当你试途遵守数字增减的老办法来缓动时,你会发明色彩的变更并不腻滑。为了更恰当的进行色彩缓动,凡是须要自力的对红、绿、蓝的成分进行缓动。TweenMax 把这一切变得简单。将一个 16 进制色彩值缓动到另一个 16 进制色彩值,只须要应用这个 TweenMax 中专用的 hexColors 属性即可。 这个属性必须是一个对象,该对象具有相干的色彩属性,属性名称与目标对象中应用的 16 进制色彩属性的名称雷同。比如,若是
my_obj 对象具有一个“myHexColor”属性,想让它在两秒种内缓动为红色 (0 xFF0000),须要如许做: 

       TweenMax.to(my_obj, 2, {hexColors:{myHexColor:0 xFF0000}}); (内层花括号括起来的项目组,默示的就是一个包含有 myHexColor 属性的对象----译者注)

       可以传递随便率性数量的 hexColor 属性。

     onStart : Function - 在缓动开端时想要履行某个函数,就将函数的引用(凡是是函数名)放到这里。当缓动是带延迟的,这一点会很是有效。

     onStartParams : Array - 为缓动开端时要履行的函数传递参数。(可选的)

     onUpdate : Function - 缓动过程中,每次更新属性值时,会履行这里指定的函数(缓动开端后,每一帧被触发一次)。

     onUpdateParams : Array - 给 onUpdate 参数指定的函数传递参数 (可选的)

     onComplete : Function - 缓动停止时履行的函数。 

     onCompleteParams : Array - 给 onComplete 参数所指定的函数传递参数 (可选的)

     renderOnStart : Boolean - 当应用带有延迟缓动的 TweenFilterLite.() ,并且欲望阻拦缓动的衬着(rendering )结果,直到缓动真正开端,将这个值设为 true.默认景象下该值为 false ,这会让 TweenMax.() 衬着结果立即被履行,甚至是在延迟尚未停止之前。

     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

       

 

关键属性:

 - progress : Number (局限0 - 1,为 0 默示缓还未开端,0.5 缓动进行了一半,1 缓动停止)

 - paused : Boolean (逻辑值)

 

关键办法:

 - TweenMax.to(target:Object, duration:Number, vars:Object):TweenMax

 - TweenMax.(target:Object, duration:Number, vars:Object):TweenMax

 - TweenMax.allTo(targets:Array, duration:Number, vars:Object):Array

 - TweenMax.allFrom(targets:Array, duration:Number, vars:Object):Array

 - TweenMax.sequence(target:Object, tweens:Array):Array

 - TweenMax.getTweensOf(target:Object):Array

 - TweenMax.isTweening(target:Object):Boolean

 - TweenMax.getAllTweens():Array

 - TweenMax.killAllTweens(complete:Boolean):void

 - TweenMax.killAllDelayedCalls(complete:Boolean):void

 - TweenMax.pauseAll(tweens:Boolean, delayedCalls:Boolean):void

 - TweenMax.resumeAll(tweens:Boolean, delayedCalls:Boolean):void

 - pause():void

 - resume():void

 

 

示例: 

 对 MovieClip 进行连气儿的缓动,先用2秒钟时候让透明度降到 50%,然后用1秒钟时候滑落到 y 坐标为300的地位,应用如下的代码:

 

  import gs.TweenMax;

  TweenMax.sequence(clip_mc, [{time:2, alpha:0.5}, {time:1, y:300}]);

 

 应用 Back.easeOut 函数对影片剪辑 clip_mc 进行缓动,缓动连气儿 5 秒钟,alpha 值变到 0.5,x 坐标变到 120,延迟 2 秒钟履行,缓动停止后,调用“onFinishTweenusing”,并且为这个函数传递几个参数(数值 5 和 对 clip_mc 的引用),代码如下:

  

  import gs.TweenMax;

  import fl.motion.easing.Back;

  TweenMax.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);

  }

 

 若是舞台上的影片剪辑已经处于期望的缓动停止时地位,而你欲望它从其它地位用 5 秒钟的时候回到当前地位,(比如从比当前地位高 100 像素或屏幕外更高的处所,经由过程改变 y 属性,下落到当前地位)可以应用下面的代码:

  

  import gs.TweenMax;

  import fl.motion.easing.Elastic;

  TweenMax.(clip_mc, 5, {y:"-100", ease:Elastic.easeOut});  

 

备注:

 - 给参数值加上引号,默示对指定的属性进行响应操纵。比如,应用 TweenMax.to(mc, 2, {x:"-20"}); 它将 mc.x 向左移动 20 像素,与此雷同结果的代码是:TweenMax.to(mc, 2, {x:mc.x - 20});

 - 可以对任何 MovieClip 应用 "volume" 缓动,就比如:

   TweenMax.to(myClip_mc, 1.5, {volume:0});

 - 可以将 MovieClip 缓动成某种色调或色彩,应用 "tint" 属性,比如:

   TweenMax.to(myClip_mc, 1.5, {tint:0 xFF0000});

 - 想要对数组内容进行缓动,将数值放到一个叫 endArray 的数组中即可,例如:

   var myArray:Array = [1,2,3,4];

   TweenMax.to(myArray, 1.5, {endArray:[10,20,30,40]});

 - 可以在任何时辰终止缓动,应用 TweenMax.killTweensOf(myClip_mc); 函数。若是想强迫终止缓动,可以传递一个 true 做为第二个参数,比如 TweenMax.killTweensOf(myClip_mc, true);

 - 去除延迟回调函数,用 TweenMax.killDelayedCallsTo(myFunction_func);这项功能可以用来把握回调函数的优先级。

 - 应用 TweenMax.() 办法,可以使目标对象活动回它地点的地位。比如,你可以将对象在舞台上摆放整洁(缓动停止时的地位),然后哄骗缓动,让它们跑到那个地位上去,你可以将缓动初始地位的 x 或 y 或 alpha (或者其它你须要的属性)当做参数传递给这个办法函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息