Flash缓动类2
昨天研究了会缓动类,可以看一个应用:Flash缓动类1,今天整理了一下,这里简单介绍一下:
一个简单例子:
优点:
轻便体积小,使用最简单方式时就只用到了一个类,大约会给swf增加1.8kb左右;而且缓动效果已分离,没有使用到的缓动效果不会编译到swf去。
缺点:
缓动效果比较少。不过用户完全可以自己去做扩展开发,实现laan.smart.tween.ease.IEase接口已完成自己的缓动效果。
功能当然就更少了。不过学习代价比较小,也是一个优点呀。
这里下载缓动类以及示例代码:附件: tween_1[1].0_20090711.rar
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时,所有缓动效果会被立即提交并完成。(文/laan’s steps)