原文地址:http://www.laaan.cn/?p=972
昨天研究了会缓动类,可以看一个应用》》,今天整理了一下,这里简单介绍一下:
一个简单例子:
优点:
轻便体积小,使用最简单方式时就只用到了一个类,大约会给swf增加1.8kb左右;而且缓动效果已分离,没有使用到的缓动效果不会编译到swf去。
缺点:
缓动效果比较少。不过用户完全可以自己去做扩展开发,实现laan.smart.tween.ease.IEase接口已完成自己的缓动效果。
功能当然就更少了。不过学习代价比较小,也是一个优点呀。
1.代码结构
laan.smart.tween.Tweener 缓动主类
laan.smart.tween.ease.IEase 缓动效果接口
laan.smart.tween.ease.EaseInCirc
laan.smart.tween.ease.EaseOutCirc
...................................................................... 缓动效果类
2.最简单使用示例
var mc:MovieClip = new MovieClip();
Tweener.addTween(mc, 1.5, {x:50, y:100});
3.添加缓动方法
Tweener.addTween(target:Object, duration:Number, params:Object, ease:Object = null):void;
target:目标对象
duration:缓动持续时间(以秒为单位)
params:相关参数, 比如{x:50, y:100, alpha:67, roation:30}
-------另外接受参数:
-------delay:缓动延迟时间(以秒为单位)
-------onStart:缓动开始回调
-------onUpdate:缓动更新回调
-------onComplete:缓动完成回调
ease:缓动效果
-------1)默认为null,此时使用系统默认缓动效果,即直线缓动
-------2)接收任何实现laan.smart.tween.ease.IEase接口的类或实例。比如
--------------Tweener.addTween(mc, 1.5, {x:50, y:100},EaseInCirc);//接收类
--------------Tweener.addTween(mc, 1.5, {x:50, y:100},new EaseInCirc());//接收实例
-------类库中已提供部分缓动效果的实现类。当然用户也可以完全来实现。
-------3)接受任何指定格式的定义方法,格式类似为:
-------function getValue(fromValue:Number, toValue:Number, passedTime:Number, duration:Number):Number;
--------------fromValue 初始值
--------------toValue 目标值
--------------passedTime 缓动开始到目前的时间
--------------duration 缓动总时间
-------该方法根据这个四个数据计算出当前时间点缓动数据。比如:
-------function doLine(fromValue:Number, toValue:Number, passedTime:Number, duration:Number):Number {
--------------return fromValue + (toValue - fromValue) / duration * passedTime;
-------}
-------Tweener.addTween(mc, 1.5, {x:50, y:100},doLine);//接收方法
-------另外类库中的EaseFactory已提供一系列缓动计算方法,可以这样使用:
-------Tweener.addTween(mc, 1.5, {x:50, y:100},EaseFactory.easeInBack);//接收方法(该系列方法全部源自Tweener, 略有更改)。
4.移除缓动
Tweener.removeTween(target:Object, submitEffect:Boolean = true):void;
target:目标对象
submitEffect:是否提交缓动效果。当该值为true时,你所移除的缓动效果会被立即提交并完成。
5.移除所有缓动效果
Tweener.removeAllTween(submitEffect:Boolean = true):void
submitEffect:是否提交缓动效果。当该值为true时,所有缓动效果会被立即提交并完成。