Akopalipsis,
Всё очень просто, смотри.
Для начала создаёшь обычный таймер с интервалом 60fps (или какую тебе нужно частоту обновления) и обычную переменную на уровне класса с типом Number, для расчётов:

Код AS3:
private var lastTime:Number = 0;
private var timer:Timer = new Timer(1000 / 60);
Соответственно, подписываешь функцию слушатель, которую таймер будет дёргать 60 раз в секунду.
Далее, на каждой итерций, в функций листенере расчитываеш реально прошедшее время таким вот не замысловатым образом:

Код AS3:
private function onTimerTick(e:TimerEvent):void{
var currentTime:Number = getTimer(); // Текущее время
var elapsedTime:Number = (currentTime - lastTime) / 1000; // Реально прошедшее время с последней иттераций
lastTime = currentTime; // Запоминаем текущее время для следующего вызова.
}
Так ты получаешь в переменной elapsedTime - реально прошедшее время. Для удобства, его лучше перевести в секунды (разделить на 1000).
Далее всё становится ещё проще.
Тебе нужно рисовать некоторую линию от 0:0. Всё что для этого нужно - это запомнить текущее положение линий (до куда её нарисовали от 0:0) и указать расстояние, на которое она рисуется
за 1 секунду реального времени. Выглядеть это может примерно так:

Код AS3:
/// Скорость рисования линий за 1 секунду.
private static const DRAW_SPEED:Number = 15;
private var linePoint:Point = new Point(0, 0);
// На каждой иттераций таймера, ты имеешь прошедшее время с момента последнего вызова,
// которое можеш передавать функций рисовалке линий:
private function lineAnimation(time:Number):void{
// Эта функция знает лишь то, что с последнего вызова прошло time секунд.
// Так как мы имеем скорость рисования линий за 1 секунду, мы можем найти расстояние
// на которое она нарисуется за текущее прошедшее время.
// Новая позиция для линий:
linePoint.x += time * DRAW_SPEED;
// Код, рисующий линию к новой координате
// ...
}
Вот и всё. Ничего сложного если совсем немного вникнуть. Все ваши анимаций, скорости перемещения персонажа и другие параметры изменения, должны указываться как - изменение за 1 секунду времени.
По такому принципу, например, работает анимация в Starling. На основе прошедшего времени работают физические движки. По этому-же принципу можно делать и "не лагающие игры". То-есть, лагать они конечно-же могут, будет уменьшаться частота обновления мира (fps), но эффекты при этом будут проигрываться с нормальной скоростью, а не замедленной. Уменьшится fps но действие в игре будет идти с той-же скоростью.