Laan's steps..

Feed Rss

缓动类

07.10.2009, flash, my works, by .

这个已经有很成功的类库了。我用得比较多的是Tweener。确实很强大,用起来也很顺手。不过有个小小的缺点就是,有点大,引用该类库整个swf会大差不多9KB(如果没记错的话)。当你做一个小应用的时候,比如整个也就10kb的样子,结果使用该类库却足足增加了一倍。特别是有时候你就仅仅是用了它其中的一个缓动效果——我很多时候就只用到了Liner,这个时候心里很不爽。当然了,如果你对swf体积不是很在乎的话,就没必要想这么多了。

另一个就是TweenLite了。这个比较小,作者说基本应用也就增加3kb左右。完全可以接受,于是将一个基于Tweener的项目改为基于TweenLite的。结果让我大吃一惊:竟然出现完全不在预料内的效果,应该是两个类库的实现机理有点不一样。看来只能自己写了:

不过得说明一点:本人没有打算写一个Twee类库,只是写了一个Liner缓动效果,  重在我的一些体会。

刚开始我想到的是使用Timer来控制缓动效果,即添加一个缓动就添加一个timer用来控制该缓动。这样实现起来不是很难,很快就写好了。然后测试,运行正常。可是我添加几十个缓动效果时就不行了,动画效果有明显停滞的迹象。这还是仅仅的几十个Timer呢。看来Timer真的很消耗资源,建议在开发时,不要用太多的Timer。

于是又想到用总控的方法去控制缓动效果。每个缓动效果并不是由一个Timer控制,而是所有的效果同时被一个Timer控制,Timer定时去计算一次所有缓动的数据已更新缓动效果。这样下来就几乎消除了Timer对资源的消耗了。

看看这个效果(请安装flashplayer10或更高版本)

缓动类 有 2 条回应

  1. TweenLaan出现了!!!

    回复
  2. TweenLaan!!-_-!!

    回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>