Я бы предложил использовать такой класс, как TweenLite (http://blog.greensock.com/tweenliteas3/), который весит около 3 КБ, или, если вам нужно больше энергии, вы можете использовать TweenMax, который, я считаю, составляет 11 КБ. Здесь много преимуществ. Во-первых, этот «движок» был тщательно протестирован и протестирован и хорошо известен как один из наиболее дружественных к ресурсам способов анимации нескольких или даже многих вещей. Я видел эталон, в котором в AS3 1500 спрайтов анимируются с помощью TweenLite, и он имеет сильные 20 кадров в секунду, тогда как конкуренты, такие как Tweener, замедляют работу до 9 кадров в секунду http://blog.greensock.com/tweening-speed-test/. Следующим преимуществом является простота использования как я покажу ниже.
//Make sure you have a class path pointed at a folder that contains the following.
import gs.TweenLite;
import 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();
//Now we animate ball_mc
//Example: TweenLite.to(displayObjectName, totalTweeningTime, {someProperty:someValue,anotherProperty:anotherValue,onComplete:aFunctionCalledWhenComplete});
TweenLite.to(ball_mc, 1,{x:400,alpha:0.5});
Таким образом, это берет ball_mc и перемещает его на 400 из его текущего положения на оси x, и во время того же Tween он уменьшает или увеличивает альфа с текущего значения до 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. * Import, который, я считаю, является уравнением ослабления Пеннера, используемым через TweenLite.
В конце концов, мы не имеем возможности управлять опросами (открытыми циклами), такими как таймер, и у нас есть очень читаемый код, который можно легко изменить или удалить.
Также важно отметить, что TweenLite и TweenMax предлагают гораздо больше, чем я здесь показал, и можно с уверенностью сказать, что я использую один из двух классов в каждом отдельном проекте. Анимации являются пользовательскими, к ним прикреплены функциональные возможности (onComplete: functionCall), и, опять же, они оптимальны и дружественны к ресурсам.