topical media & game development

talk show tell print

actionscript-misc-FrameRateMeter.ax

actionscript-misc-FrameRateMeter.ax [swf] flex


  package {
    import flash.display.*;
    import flash.events.*;
    import flash.utils.*;  
    import flash.text.*;  
    
    public class @ax-actionscript-misc-FrameRateMeter extends Sprite {
      private var lastFrameTime:Number;
      private var output:TextField;
      
      public function @ax-actionscript-misc-FrameRateMeter() {
        stage.frameRate = 60;
        
        output = new TextField();
        output.autoSize = TextFieldAutoSize.LEFT;
        output.border     = true;
        output.background = true;
        output.selectable = false;
        addChild(output);
  
        addEventListener(Event.ENTER_FRAME, enterFrameListener);
      }
      
      public function enterFrameListener (e:Event):void {
        var now:Number = getTimer();
        var elapsed:Number = now - lastFrameTime;
        var framesPerSecond:Number = Math.round(1000/elapsed);
        output.text = "Time since last frame: " + elapsed
               + "\nExtrapolated actual frame rate: " + framesPerSecond
               + "\nDesignated frame rate: " + stage.frameRate;
        lastFrameTime = now;
      }
    }
  }
  


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.