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

  1. class system.FPStester
  2. {
  3.    var MC;
  4.    var timer;
  5.    var midTime;
  6.    var lasttimer;
  7.    static var myInstance;
  8.    var framesTimes_arr = new Array();
  9.    var byframes = 10;
  10.    var precision = 1000;
  11.    var positions = 2;
  12.    function FPStester(_MC)
  13.    {
  14.       if(system.FPStester.myInstance == undefined)
  15.       {
  16.          if(_MC != undefined)
  17.          {
  18.             this.MC = _MC;
  19.             system.FPStester.myInstance = this;
  20.             this.timer = system.Timer.getInstance(_MC);
  21.             this.start();
  22.          }
  23.       }
  24.    }
  25.    function setPrecision(frames, round)
  26.    {
  27.       this.byframes = frames;
  28.       this.precision = Math.pow(10,round);
  29.       this.positions = round;
  30.    }
  31.    function getFPStime()
  32.    {
  33.       var fpstmp = (int(1000 * this.precision / this.midTime) / this.precision).toString().split(".");
  34.       var comaspace = fpstmp[1];
  35.       comaspace = comaspace != undefined ? comaspace : "";
  36.       var comaspacelength = comaspace.length;
  37.       if(comaspacelength < this.positions)
  38.       {
  39.          comaspace += this.precision.toString().substr(1,this.positions - comaspacelength);
  40.       }
  41.       else
  42.       {
  43.          comaspace = comaspace.substr(0,this.positions);
  44.       }
  45.       return fpstmp[0] + "." + comaspace + " FPS";
  46.    }
  47.    function calculateFPStime()
  48.    {
  49.       var frames = this.framesTimes_arr.push(getTimer() - this.lasttimer);
  50.       this.lasttimer = getTimer();
  51.       var summ = 0;
  52.       if(frames > this.byframes)
  53.       {
  54.          this.framesTimes_arr.shift();
  55.       }
  56.       var i = 0;
  57.       while(i < this.byframes)
  58.       {
  59.          summ += this.framesTimes_arr[i];
  60.          i++;
  61.       }
  62.       this.midTime = summ / this.byframes;
  63.    }
  64.    static function getInstance(_MC)
  65.    {
  66.       if(system.FPStester.myInstance == undefined)
  67.       {
  68.          system.FPStester.myInstance = new system.FPStester(_MC);
  69.       }
  70.       return system.FPStester.myInstance;
  71.    }
  72.    function start()
  73.    {
  74.       this.framesTimes_arr = new Array();
  75.       this.framesTimes_arr.push(getTimer());
  76.       this.lasttimer = getTimer();
  77.       this.timer.addListener(this.MC,0,system.Delegate.create(this,this.calculateFPStime),0);
  78.    }
  79.    function stop()
  80.    {
  81.       this.timer.removeListener(this.MC);
  82.    }
  83. }
  84.