home *** CD-ROM | disk | FTP | other *** search
/ Champak 108 / jogo-disk-108.iso / Games / Rabbit_Rivalry.swf / scripts / __Packages / smashing / IntervalEngine.as next >
Text File  |  2010-05-15  |  2KB  |  66 lines

  1. class smashing.IntervalEngine
  2. {
  3.    var _MAX_TIMEDIFF = 0.005;
  4.    var _MIN_FPS = 5;
  5.    var _MAX_FRAMETIME = 1 / smashing.IntervalEngine.prototype._MIN_FPS;
  6.    var _lel = 0.2;
  7.    var _FPS = 0;
  8.    function IntervalEngine(update_object, update_function)
  9.    {
  10.       this._uo = update_object;
  11.       this._uf = update_function;
  12.    }
  13.    function startFlat(FPS)
  14.    {
  15.       this._FPS = FPS;
  16.       this._update_interval = 1 / FPS;
  17.       this._last_update = getTimer() * 0.001;
  18.       this._i = setInterval(this,"_flat_step",0);
  19.    }
  20.    function startFlex()
  21.    {
  22.       this._last_update = getTimer() * 0.001;
  23.       this._i = setInterval(this,"_flex_step",0);
  24.    }
  25.    function startFast()
  26.    {
  27.       this._last_update = getTimer();
  28.       this._i = setInterval(this,"_fast_step",10);
  29.    }
  30.    function reset(Void)
  31.    {
  32.       if(this._i != undefined)
  33.       {
  34.          clearInterval(this._i);
  35.       }
  36.       this._ft = 0;
  37.       this._last_update = getTimer() * 0.001;
  38.       this._lel = this._MAX_FRAMETIME / 2;
  39.    }
  40.    function _flex_step(Void)
  41.    {
  42.       this._el = Math.min(this._MAX_FRAMETIME,- this._last_update + (this._last_update = getTimer() * 0.001));
  43.       this._lel -= Math.max(- this._MAX_TIMEDIFF,Math.min(this._MAX_TIMEDIFF,this._lel - this._el));
  44.       this._uo[this._uf](this._lel);
  45.    }
  46.    function _flat_step(Void)
  47.    {
  48.       this._ft += - this._last_update + (this._last_update = getTimer() * 0.001);
  49.       if(this._ft < this._update_interval)
  50.       {
  51.          return undefined;
  52.       }
  53.       this._uo[this._uf](this._ft);
  54.       this._ft = 0;
  55.    }
  56.    function _fast_step(Void)
  57.    {
  58.       this._el = - this._last_update + (this._last_update = getTimer());
  59.       this._uo[this._uf](this._el * 0.001);
  60.    }
  61.    function clear()
  62.    {
  63.       clearInterval(this._i);
  64.    }
  65. }
  66.