Я больше за организацию основного цикла работы в играх писал и паузы типа юзер вызвал меню %)

Код AS3:
init();
doSomething();
//останавливалась и ждала секунду или несколько, а затем выполняла:
doSomethingElse();
//и наконец
end();
Вот так не то чтобы совсем нельзя, но реализация этого поимеет столько гадких побочных эффектов, что оно того однозначно не стоит (ну например оно перерисовываться не будет при выполнении).
Надо понять, как вообще покадровая система флэша работает. Где-то было описание, но я сейчас не найду, потому своими словам (с неточностями, но основную идею передает):
идёт обработка всех событий (заход в кадр и обработка кода, типа того, что выше - тоже там), затем отрисовка, затем, если осталось время, можно поспать и потом цикл повторяется. Ну т.е. у вас там было написано

Код AS3:
init();
doSomething();
//код с таймером
end();
- так так оно и выполнилось, в одном кадре.
В статье речь о том, что можно сделать "класс" типа такого.

Код AS3:
package
{
import flash.events.Event;
import flash.utils.getTimer;
public class Update
{
private static var oldTime:Number = Number.NaN;
private static var updateables:Array = new Array;
private static var pauseLevel:int = 0;
public static function update(ev:Event):void {
var nowTime:Number = getTimer();
if (isNaN(oldTime)) oldTime = nowTime;
var dt:Number = nowTime - oldTime;
oldTime = nowTime;
if (pauseLevel == 0) {
for each(var updateable:Object in updateables) {
updateable.update(dt);
}
}
}
public static function pause():void {
++pauseLevel;
}
public static function unpause():void {
--pauseLevel;
}
public static function add(updateable:Object):void {
//лучше написать интерфейс IUpdateable, в котором есть только одна функция public function update(dt:Number):void; и заменить все Object на IUpdateable
updateables.push(updateable);
}
public static function remove(updateable:Object):void {
for (var i:int = 0; i < updateables.length; ++i) {
}
}
}
}
Затем подписать его и только его на ENTER_FRAME - addEventListener(Event.ENTER_FRAME, Update.update); , всё, что как-то зависит от времени, паузится итп. имеет функцию update(dt:Number):void, в которой (и только в ней) собственно происходят какие-то действия, зависящие от времени. Пауза/пуск там написаны.
Писать в кадрах при таком подходе оч. тяжко, что только плюс =)