帧频计数器

//在任意一个项目中嵌入一个这样的频帧计数器:

//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;

			}

		}

	}

}

你可能感兴趣的:(帧频计数器)