Over 10 years of community discussion and knowledge are maintained here as a read-only archive.
public class TimeKeeper extends EventDispatcher { public static const TIME_TICK:String = "timeTick"; public static const POWER_TICK:String = "powerTick"; private const INTERVAL_MS:int = 150; private var timeStamp:int; private var powerTimeStamp:int; private var _gameTimer:Boolean; private var _powerTimer:Boolean; public function TimeKeeper() { _gameTimer = false; _powerTimer = false; } public function update():void { if (_gameTimer) { if (getTimer() > (timeStamp + INTERVAL_MS)) { timeStamp = getTimer(); dispatchEvent(new Event(TimeKeeper.TIME_TICK, true)); } } if (_powerTimer) { if (getTimer() > (timeStamp + INTERVAL_MS/10)) { powerTimeStamp = getTimer(); dispatchEvent(new Event(TimeKeeper.POWER_TICK, true)); } } } public function set gameTimer(status:Boolean):void { _gameTimer = status; } public function get gameTimer():Boolean { return _gameTimer; } public function set powerTimer(status:Boolean):void { _powerTimer = status; } public function get powerTimer():Boolean { return _powerTimer; } public function reset():void { timeStamp = getTimer(); powerTimeStamp = getTimer(); } }