my space:http://www.laaan.cn

flash缓动类

原文地址: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时,所有缓动效果会被立即提交并完成。

posted @ 2009-07-11 23:49  laan  阅读(2089)  评论(2编辑  收藏  举报
my space:http://www.laaan.cn