home *** CD-ROM | disk | FTP | other *** search
- class system.Timer
- {
- static var myInstance;
- static var _listeners;
- static var MC;
- static var _enabled;
- function Timer(_MC)
- {
- if(system.Timer.myInstance == undefined)
- {
- if(_MC != undefined)
- {
- system.Timer.myInstance = this;
- system.Timer._listeners = {};
- this.enable();
- system.Timer.MC = _MC;
- }
- }
- }
- function echo()
- {
- }
- static function getInstance(_MC)
- {
- if(system.Timer.myInstance == undefined)
- {
- system.Timer.myInstance = new system.Timer(_MC);
- }
- return system.Timer.myInstance;
- }
- function oEF()
- {
- var isTime = getTimer();
- var obj = {};
- var count = 0;
- for(var name in system.Timer._listeners)
- {
- count++;
- obj = system.Timer._listeners[name];
- if(obj.nextTime < isTime)
- {
- obj.fn();
- obj.nextTime += obj.stepTime;
- if(obj.times > 0)
- {
- if(--obj.times == 0)
- {
- this.removeListener(name);
- }
- }
- }
- }
- if(count == 0)
- {
- this.rm_oEF();
- }
- }
- function rm_oEF()
- {
- delete system.Timer.MC.onEnterFrame;
- }
- function set_oEF()
- {
- system.Timer.MC.onEnterFrame = system.Delegate.create(this,this.oEF);
- }
- function enable()
- {
- this.set_oEF();
- system.Timer._enabled = true;
- }
- function disable()
- {
- this.rm_oEF();
- system.Timer._enabled = false;
- }
- function get enabled()
- {
- return system.Timer._enabled;
- }
- function set enabled(_value)
- {
- if(_value == true)
- {
- this.enable();
- }
- else
- {
- this.disable();
- }
- }
- function addListener(obj, time, todo, times)
- {
- system.Timer._listeners[String(obj)] = {stepTime:time,fn:todo,times:times,nextTime:getTimer() + time};
- if(system.Timer._enabled)
- {
- this.set_oEF();
- }
- }
- function removeListener(obj)
- {
- delete system.Timer._listeners[String(obj)];
- }
- }
-