home *** CD-ROM | disk | FTP | other *** search
- class system.FPStester
- {
- var MC;
- var timer;
- var midTime;
- var lasttimer;
- static var myInstance;
- var framesTimes_arr = new Array();
- var byframes = 10;
- var precision = 1000;
- var positions = 2;
- function FPStester(_MC)
- {
- if(system.FPStester.myInstance == undefined)
- {
- if(_MC != undefined)
- {
- this.MC = _MC;
- system.FPStester.myInstance = this;
- this.timer = system.Timer.getInstance(_MC);
- this.start();
- }
- }
- }
- function setPrecision(frames, round)
- {
- this.byframes = frames;
- this.precision = Math.pow(10,round);
- this.positions = round;
- }
- function getFPStime()
- {
- var fpstmp = (int(1000 * this.precision / this.midTime) / this.precision).toString().split(".");
- var comaspace = fpstmp[1];
- comaspace = comaspace != undefined ? comaspace : "";
- var comaspacelength = comaspace.length;
- if(comaspacelength < this.positions)
- {
- comaspace += this.precision.toString().substr(1,this.positions - comaspacelength);
- }
- else
- {
- comaspace = comaspace.substr(0,this.positions);
- }
- return fpstmp[0] + "." + comaspace + " FPS";
- }
- function calculateFPStime()
- {
- var frames = this.framesTimes_arr.push(getTimer() - this.lasttimer);
- this.lasttimer = getTimer();
- var summ = 0;
- if(frames > this.byframes)
- {
- this.framesTimes_arr.shift();
- }
- var i = 0;
- while(i < this.byframes)
- {
- summ += this.framesTimes_arr[i];
- i++;
- }
- this.midTime = summ / this.byframes;
- }
- static function getInstance(_MC)
- {
- if(system.FPStester.myInstance == undefined)
- {
- system.FPStester.myInstance = new system.FPStester(_MC);
- }
- return system.FPStester.myInstance;
- }
- function start()
- {
- this.framesTimes_arr = new Array();
- this.framesTimes_arr.push(getTimer());
- this.lasttimer = getTimer();
- this.timer.addListener(this.MC,0,system.Delegate.create(this,this.calculateFPStime),0);
- }
- function stop()
- {
- this.timer.removeListener(this.MC);
- }
- }
-