我建议使用 TweenLite (http://blog.greensock.com/tweenliteas3/) 之类的轻量级类,大约 3kb,或者如果您需要更多功率,您可以使用 TweenMax,我相信它是 11kb。这里有很多优点。首先,这个“引擎”已经过彻底的测试和基准测试,并且是众所周知的最资源友好的方式之一,可以为少数甚至很多东西制作动画。我看过一个基准测试,在 AS3 中,1,500 个精灵正在使用 TweenLite 进行动画处理,并且它保持强劲的 20 fps,而像 Tweener 这样的竞争对手会陷入 9 fps http://blog.greensock.com/tweening-speed-test/。下一个优点是易于使用,我将在下面演示。
//确保您有一个指向包含以下内容的文件夹的类路径。
导入 gs.TweenLite;
导入 gs.easing。*;
var ball_mc:MovieClip = new MovieClip();
var g:Graphics = ball_mc.graphics;
g.beginFill(0xFF0000,1);
g.drawCircle(0,0,10);
g.endFill();
//现在我们动画ball_mc
//示例:TweenLite.to(displayObjectName, totalTweeningTime, {someProperty:someValue,anotherProperty:anotherValue,onComplete:aFunctionCalledWhenComplete});
TweenLite.to(ball_mc, 1,{x:400,alpha:0.5});
因此,这需要 ball_mc 并将其从 x 轴上的当前位置移动到 400,并且在同一个 Tween 期间,它会将 alpha 从其当前值减少或增加到 0.5。
导入需要的类后,真的只需要1行代码就可以为每个对象设置动画,非常棒。我们也可以影响轻松度,我相信默认情况下是 Expo.easeOut(Strong easeOut)。如果您希望它反弹或具有弹性,只需向对象添加如下属性即可获得此类效果。
TweenLite.to(ball_mc, 1,{x:400,alpha:0.5,ease:Bounce.easeOut});
TweenLite.to(ball_mc, 1,{x:400,alpha:0.5,ease:Elastic.easeOut});
所有的缓动都来自 gs.easing.* 导入,我相信这是通过 TweenLite 使用的 Penner 的缓动方程。
最终,我们无需管理诸如计时器之类的轮询(开环),而且我们拥有可以轻松修改或删除的可读性极强的代码。
还需要注意的是,TweenLite 和 TweenMax 提供的功能远远超过我在此处展示的内容,可以肯定地说,我在每个项目中都使用这两个类中的一个。动画是自定义的,它们具有附加功能(onComplete: functionCall),而且它们是最佳的和资源友好的。