//在任意一个项目中嵌入一个这样的频帧计数器:
//var fpsDemo:FPSDemo = new FPSDemo();
//addChild( fpsDemo );
package
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.events.Event;
import flash.utils.getTimer;
public class FPSDemo extends MovieClip
{
//用来计算相对时间
private var startTime:Number;
//当前帧频数
private var framesNumber:Number = 0;
//展示实际帧频的文本域
private var fps:TextField = new TextField();
var textFormat:TextFormat = new TextFormat();
public function FPSDemo()
{
fpsCounter();
}
//这是计数器的主函数:
private function fpsCounter():void
{
//当动画开始时以毫秒为单位获取时间
startTime = getTimer();
// 向舞台添加文本域
textFormat.size = 18;
fps.defaultTextFormat=textFormat;
addChild(fps);
//添加逐帧监听器并执行checkFPS函数
addEventListener(Event.ENTER_FRAME, checkFPS);
}
//这个函数将计算频帧:
private function checkFPS(e:Event):void
{
//当函数执行的时候以秒为单位获取时间
var currentTime:Number = (getTimer()-startTime)/1000;
//计数器加1
framesNumber++;
//判断当前时间是否比1大
if (currentTime > 1)
{
trace(currentTime)
//计算频帧并在文本域展示【乘以10再除以10是为了精确到小数点后一位】
fps.text = "FPS:" + (Math.floor((framesNumber/currentTime)*10)/10)+" MEMORY:"+uint(System.totalMemory/1024/1024)+"M";
//重设开始的时间
startTime = getTimer();
//重设帧数
framesNumber = 0;
}
}
}
}