home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Aventura / VenusMission.swf / scripts / __Packages / system / Timer.as < prev   
Encoding:
Text File  |  2008-09-23  |  2.2 KB  |  104 lines

  1. class system.Timer
  2. {
  3.    static var myInstance;
  4.    static var _listeners;
  5.    static var MC;
  6.    static var _enabled;
  7.    function Timer(_MC)
  8.    {
  9.       if(system.Timer.myInstance == undefined)
  10.       {
  11.          if(_MC != undefined)
  12.          {
  13.             system.Timer.myInstance = this;
  14.             system.Timer._listeners = {};
  15.             this.enable();
  16.             system.Timer.MC = _MC;
  17.          }
  18.       }
  19.    }
  20.    function echo()
  21.    {
  22.    }
  23.    static function getInstance(_MC)
  24.    {
  25.       if(system.Timer.myInstance == undefined)
  26.       {
  27.          system.Timer.myInstance = new system.Timer(_MC);
  28.       }
  29.       return system.Timer.myInstance;
  30.    }
  31.    function oEF()
  32.    {
  33.       var isTime = getTimer();
  34.       var obj = {};
  35.       var count = 0;
  36.       for(var name in system.Timer._listeners)
  37.       {
  38.          count++;
  39.          obj = system.Timer._listeners[name];
  40.          if(obj.nextTime < isTime)
  41.          {
  42.             obj.fn();
  43.             obj.nextTime += obj.stepTime;
  44.             if(obj.times > 0)
  45.             {
  46.                if(--obj.times == 0)
  47.                {
  48.                   this.removeListener(name);
  49.                }
  50.             }
  51.          }
  52.       }
  53.       if(count == 0)
  54.       {
  55.          this.rm_oEF();
  56.       }
  57.    }
  58.    function rm_oEF()
  59.    {
  60.       delete system.Timer.MC.onEnterFrame;
  61.    }
  62.    function set_oEF()
  63.    {
  64.       system.Timer.MC.onEnterFrame = system.Delegate.create(this,this.oEF);
  65.    }
  66.    function enable()
  67.    {
  68.       this.set_oEF();
  69.       system.Timer._enabled = true;
  70.    }
  71.    function disable()
  72.    {
  73.       this.rm_oEF();
  74.       system.Timer._enabled = false;
  75.    }
  76.    function get enabled()
  77.    {
  78.       return system.Timer._enabled;
  79.    }
  80.    function set enabled(_value)
  81.    {
  82.       if(_value == true)
  83.       {
  84.          this.enable();
  85.       }
  86.       else
  87.       {
  88.          this.disable();
  89.       }
  90.    }
  91.    function addListener(obj, time, todo, times)
  92.    {
  93.       system.Timer._listeners[String(obj)] = {stepTime:time,fn:todo,times:times,nextTime:getTimer() + time};
  94.       if(system.Timer._enabled)
  95.       {
  96.          this.set_oEF();
  97.       }
  98.    }
  99.    function removeListener(obj)
  100.    {
  101.       delete system.Timer._listeners[String(obj)];
  102.    }
  103. }
  104.