Вы можете использовать мой класс анимации ru.delimiter.math.TweenALot , это зависит от ru.delimiter.events.Chronos из того же репо, вы можете взять его или васможно изменить TweenALot на ENTER_FRAME .
Класс довольно старый, поэтому, пожалуйста, не судите меня за его стиль.
Использование:
import ru.delimiter.math.TweenALot;
var aTween:TweenALot = new TweenALot;
// The tweening target.
aTween.target = this;
// The destination properties.
aTween.properties = {x:100, y:100, alpha:0};
// The tweening duration, in milliseconds.
aTween.duration = 3000;
// Easing.
aTween.easingFunction = TweenALot.easeInOut;
// Pass the complete handler and start tweening.
aTween.start(onComplete);
function onComplete():void
{
trace("I have disappeared!");
// Destroy and release the tween instance.
aTween.destroy();
aTween = null;
}
Затем, внизу класса, есть ряд функций замедления, я думаю, что я сделал их, чтобы быть совместимыми с чем-то, просто не помню, что именно.Таким образом, вы можете создавать свои собственные функции замедления, вам даже не нужно добавлять их в класс, просто присвойте им свойство easingFunction анимации движения.
function weirdEasing(t:Number, b:Number, c:Number, d:Number):Number
{
var aProgress:Number = Math.min(1, t / d);
if (aProgress <= 0.5) return b;
return b + c * Math.pow((aProgress - 0.5) * 2, 2);
}