AS3常用三方类库(二):TweenMax 1/4(Version:11.37,Updated 2010-05-24)
原文地址:http://hi.baidu.com/dannyfd/blog/item/c4f194dc3077fa1e48540355.html TweenMax可能是很多人都用的,包括我··· 但是最近发现大量的运用就总会产生这样或那样的"怪事",有时用代码来做缓动有时又用TweenMax造成了代码的混乱,而且除了单调的TweenMax.to()等几个函数外,貌似还有很多这样那样fun stuffs。对于动画ease的控制,自己除了一个Back就不知道其他了。 总之一片惨淡··· 所以趁着这个机会好好总结一下: 一,主要代码结构: com.greensock包里面,首先最主要的就是TweenMax.as;然后一个常用的是com.greensock.easing.*;里面包含了15个缓动,下文再一一介绍;另外一个是com.greensock.events.TweenEvent,不过感觉不太常用; 每一个TweenMax方法大多都会返回一个TweenMax的实例 -- 即下文所说的TweenMax Object。一个TweenMax需要三个参数,即$target:Object, $duration:Number, $vars:Object,头两个即运动物体,时间,第三个参数保存了所有的参数。 二,TweenMax主类: 这里分几个大块来介绍,分别是:第三个参数特有属性(29个),PlugIn(17个),公共属性(10个),公共方法(20个)。 1,第三个参数特有属性(29个): 这29个参数可以直接传入第三个OBJECT参数中,不会增加文件的大小。 (1)delay : Number:延迟开始,在TweenMax动画开始前延迟的秒数。 (2)useFrames : Boolean:当设置为True时,对这个TweenMax Object的时间计算方式就是基于帧frame的。 (3)ease : Function:缓动方式。可以使用com.greensock.easing包下的缓动函数。 (4)easeParams : Array:缓动函数参数。某些缓动函数需要传入一些参数来进行额外的控制。 (5)onInit : Function:初始化函数。在TweenMax开始前,所有参数还没被传入TweenMax Object时触发。可以用来初始化运动对象的状态。 (6)onInitParams : Array:初始化函数参数。 (7)onStart : Function:开始函数。跟初始化函数不同,开始函数在TweenMax Object的值改变之后才触发,而且不同于初始化函数。开始函数可以被触发多次。 (8)onStartParams : Array:开始函数参数。 (9)onUpdate : Function:更新函数。当每次TweenMax Object数值更新的时候触发。 (10)onUpdateParams : Array:更新函数参数。 (11)onComplete : Function:完成函数。当TweenMax Object完成缓动后触发。 (12)onCompleteParams : Array:完成函数参数。 (13)onReverseComplete : Function:回放完成函数。当TweenMax Object处于回放状态,并且回到起点时触发。 (14)onReverseCompleteParams : Array:回放完成函数参数。 (15)onRepeat : Function:重放函数。当TweenMax Object每次重放的时候触发。 (16)onRepeatParams : Array:重放函数参数。 (17)immediateRender : Boolean:立即渲染。一般来说,TweenMax Object会在下一个渲染周期(也就是下一帧)被渲染到场景中。如果想强制立即渲染,可以把这个参数设为true。另外如果想阻止一个运动周期为0的运动物体被渲染,也可以把这个参数设为false。 (18)paused : Boolean:暂停。这个很好理解,设为true时TweenMax Object就会暂停缓动。 (19)reversed : Boolean:反转。不知道为什么跟说明文档里的不同。我的理解是将TweenMax Object的缓动反过来播放。 (20)overwrite : int:覆盖处理。定义了当对同一个物体使用TweenMax时发生冲突的处理方法。有6种模式。 模式0:NONE。不做任何处理。性能Excellent。 模式1:ALL_IMMEDIATE。设为该模式的TweenMax Object运动具有最高的优先级,会覆盖掉运动物体之前所有的缓动。新的TweenMax Object创建时覆盖旧的TweenMax Object。性能Excellent。 模式2:AUTO。是TweenMax的默认模式(原来我之前的痛苦都是因为它···)。在新的TweenMax Object第一次渲染时覆盖重复的属性(模式1是覆盖掉全部属性)。只要不是具有太多的属性需要覆盖,性能还是不错的。 模式3:CONCURRENT。这个单词的意思是“同时发生”。跟模式1很相似。唯一的不同是他只覆盖掉正在运行的TweenMax Object。而放过其他的没有启动的TweenMax Object。性能Very Good。 模式4:ALL_ONSTART。也是跟模式1非常像。两点不同是他是在TweenMax Object第一次渲染时才覆盖掉其他所有的TweenMax Object,而且这个会把在他之后创建的TweenMax Object也覆盖掉。性能Very Good。 模式5:PREEXISTING。这个单词一看上去很迷糊,其实是pre-existing,囧。唯一的不同是他是在TweenMax Object第一次渲染时才覆盖掉其他所有的TweenMax Object。性能Very Good。 如果想改变全局的TweenMax Object默认overwrite属性,可以调用哪个OverWriteManager类的全局方法init(),即: OverwriteManager.init(OverwriteManager.XXXX); (21)repeat : int:循环次数。设置为-1为无限循环。 (22)repeatDelay : Number:循环延迟的时间。 (23)yoyo : Boolean:YOYO球。另外一种循环的方式。像我们玩的YOYO球一样,从头到尾,再从尾到头的往返运动。PS:要与repeat同时设置。 (24)onStartListener : Function:注册一个TweenEvent的监听,跟开始函数在同一时刻派发。 (25)onUpdateListener : Function:注册一个TweenEvent的监听,跟更新函数在同一时刻派发。 (26)onCompleteListener : Function:注册一个TweenEvent的监听,跟完成函数在同一时刻派发。 (27)onReverseCompleteListener : Function:注册一个TweenEvent的监听,跟回放完成函数在同一时刻派发。 (28)onRepeatListener : Function:注册一个TweenEvent的监听,跟重放函数在同一时刻派发。 (29)startAt : Object:重设初始值。一般TweenMax Object使用运动物体的当前状态来做初始值。但是可以使用这个参数重新设置运动物体的初始状态。 |