参考:http://news.9ria.com/2013/0613/27470.html
官方API:http://www.greensock.com/as/docs/tween/com/greensock/TweenMax.html
TweenMax - greensock
// ==========================================================
*** 添加一个显示对象到舞台并对该象进行简单的缓动,当移除后记得移除缓动addChildAt(image,0);
// 添加Tween缓动同时注册移除事件
TweenMax.to(image,0.4,{y:image.y - 4,repeat:-1,yoyo:true});
image.addEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromImage);
function onRemovedFromImage(e:Event):void
{
var image:DisplayObject = e.target as DisplayObject;
image.removeEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromImage);
TweenMax.killTweensOf(image);
}
// ==========================================================
//---------------------------------------------
方法1. fromTo(target:Object,duration:Number,fromVars:Object,toVars:Object):TweenMax
可用于对一个对象做多次缓动,有同样的初始值或者某些条件
stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
function onDown(e:MouseEvent):void
{
TweenMax.fromTo(tf,1,{tint:0x000000,repeat:5,overwrite:2,yoyo:true},{tint:0xFF0000,repeat:5,overwrite:1,yoyo:true});
}
function onUp(e:MouseEvent):void
{
//TweenMax.killTweensOf(tf);
TweenMax.fromTo(tf,1,{tint:0x000000,repeat:5,overwrite:2,yoyo:true},{tint:0xFF0000,repeat:5,overwrite:1,yoyo:true});
}
//---------------------------------------------
方法二.allTo(targets:Array,duration:Number,vars:Object,stagger:Number = 0, onCompleteAll:Function = null, onCompleteAllParams:Array = null):Array
第四个参数表示间隔时间,最后两个是结束后的函数和函数参数/与TweenMax.to 不同的是,to的onComplete属性放在vars中,而allTo的单独作为参数,onCompleteAll是在targets中所有都完成后才执行/,同时返回的是TweenMax组成的数组
var targets:Array = [tf,tf2,tf3];
function onDown(e:MouseEvent):void
{
TweenMax.allTo(targets,1 ,{tint:0xFF0000,repeat:5,overwrite:1,yoyo:true});
}
//---------------------------------------------
方法三.allFrom,
有allTo就有对应的allFrom,与之类似,只是定义的是初始状态,缓动到当前状态。
//---------------------------------------------
方法四.allFromTo(targets:Array, duration:Number, fromVars:Object, toVars:Object, stagger:Number = 0, onCompleteAll:Function = null, onCompleteAllParams:Array = null):Array,与方法1对应,对多个对象进行操作
//---------------------------------------------
方法五.最常用的to(target:Object,duration:Number,vars:Object):TweenMax
这是allTo的简化版,对一个对象进行操作,参数也很简明
***主要弄清vars中的属性个数及用法(29+17+10+20)
//---------------------------------------------
方法六.与to对应的TweenMax.from,定义了对象的初始状态,缓动到当前状态
//---------------------------------------------
方法七.delayedCall延迟执行函数
TweenMax.delayedCall(delay:Number,onComplete:Function,onCompleteParams:Array = null,useFrames:Boolean = false):TweenMax
此方法和as3的setTimeout很类似,//setTimeout(closure:Function, delay:Number, ... arguments):uint
默认最后一个参数为false,则delay以时间秒表示。时间到了调用onComplete
TweenMax.delayedCall(1, myFunction, ["param1", 2]);
function myFunction(param1:String, param2:Number):void
{
trace("called myFunction and passed params: " + param1 + ", " + param2);
}
//---------------------------------------------
方法八、九.getAllTweens():Array,返回正在运行的所有物体的TweenMax Object,
getTweensOf(target:Object):Array;
//---------------------------------------------
方法十. isTweening(target:Object):Boolean
判断对象是否在Tweening
//---------------------------------------------
清除,停止缓动
方法十一.killAll(complete:Boolean = false,tweens:Boolean = true,delayCalls:Boolean = true);
三个参数:第一个是否等缓动结束后再清楚,默认直接立即停止,
第二个表示清除所有缓动
第三个表示清除所有的延迟调用的函数.
//---------------------------------------------
方法十二.killChildTweensOf(parentisplayObjectContainer, complete:Boolean = false):void
清除对象的所有子对象的缓动,complete默认为立即清除,不等结束后.
//---------------------------------------------
方法十三.killProperties,清除某个属性,注意此方法不是静态方法。
stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
var tween:TweenMax = new TweenMax(tf,4,{x:500,y:500});
function onDown(e:MouseEvent):void
{
tween.killProperties(['x']);
}
//---------------------------------------------
方法十四.updateTo(vars:Object,resetDuration:Boolean = false),清除某个属性,注意此方法不是静态方法。
第一个参数是新的缓动目标值,第二个表示是否重置时间即重新开始计算时间或者在剩下的时间内完成
stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
var tween:TweenMax = new TweenMax(tf,4,{x:500,y:500});
function onDown(e:MouseEvent):void
{
tween.updateTo({x:0,y:0},false);
}
//==========================================================================================
*2.第三个参数的特有属性(vars:Object)
(1).delay:Number 延迟开始的秒数.
(2).useFrames:Boolean 当设置为true时,delay基于帧
*(3).ease:Function 缓动方式,可以使用com.greensock.easing包中的函数。
(4).easeParams:Array,有些ease需要参数进行额外控制
(5).onInit:Function,初始化函数。在TweenMax开始前,所有参数还没传入vars时触发,可以用来初始化运动对象的状态
var tween:TweenMax = new TweenMax(tf,2,{x:500,y:500});
function func():void
{
tf.x = tf.y = 0;
}
function onDown(e:MouseEvent):void
{
//tween.updateTo({x:0,y:0},false);
TweenMax.to(tf,2,{x:500,y:500,onInit:func});
}
(6).onInitParams:初始化函数参数.
(7).onStart:Function.开始函数,与初始化函数不同,这是在开始(传入值之后)才执行,可以被触发多次
(8).onStartParams:Array
(9).onUpdate:Function.更新函数,每次vars数值更新的时候触发
(10).onUpdateParams:Array
*(11).onComplete:Function 完成函数,当vars完成时触发
(12).onCompleteParams:Array 完成函数参数.
(13).onRepeat:Function.重放函数,设置repeat次数,每次重放时调用
(14).onRepeatParams:Array
(15).pause:Boolean,设置暂停
(16).overwrite:int 覆盖处理
0:不做任何处理
1:当前的vars属性具有最高优先级,会覆盖掉同个对象前面的所有,不管是否冲突
2:在新的vars第一次渲染的时候会覆盖掉与前面重复的属性。
3:与1相似,但是只覆盖掉正在运行的属性
。。。
(17).repeat:int 循环次数,-1为无限循环。
(18).repeatDelay:Number.循环延迟时间
(19).yoyo:Boolean,设置往返运动1--2--1--2--1,与repeat同时设置
(20).startAt:Object,重设初始值.一般是用当前的值作为初始值继续缓动,但是可以通过这个来改变重新开始的参数
TweenMax.to(tf,2,{tint:0xff0000,repeat:3,yoyo:true});
stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
function onDown(e:MouseEvent):void
{
TweenMax.to(tf,2,{tint:0xff0000,repeat:3,yoyo:true,startAt:{tint:0x000000}});
}
(24)onStartListener : Function:注册一个TweenEvent的监听,跟开始函数在同一时刻派发。
和前面的onStart差不多,可以从参数中获取到一些信息
TweenMax.to(tf,1,{onStartListener:function(e:TweenEvent}:void{})
(25)onUpdateListener : Function:注册一个TweenEvent的监听,跟更新函数在同一时刻派发。
(26)onCompleteListener : Function:注册一个TweenEvent的监听,跟完成函数在同一时刻派发。
(27)onReverseCompleteListener : Function:注册一个TweenEvent的监听,跟回放完成函数在同一时刻派发。
(28)onRepeatListener : Function:注册一个TweenEvent的监听,跟重放函数在同一时刻派发。
// ==============================================================
*3.Plugin
1.autoAlpha:与alpha差不多,只是在alpha = 0的时候可以自动设置visible =false
2.visible:Boolean
3.tint:Number,颜色
4.volume:Number,缓动音量。前提是该对象支持。比如MovieClip
? 5.removeTint:Boolean
6.frame:Number. 当对象是Movieclip时,缓动内部帧
7.bezier:Array
8.bezierThrough
9.shortRotation:Object 短旋转,哪边快往哪边
以及一些滤镜。
参考官方文档实例
// ==========================================================