FPS计数器_ActionScript_百度空间

设计一个FPS计数器,即记录每秒钟Flash播放的帧数。由于每时每刻实际渲染工作量的不同,Flash播放器的帧频不一定能够帧数地按照定义的帧频播放,尤其是在3D应用中。那么有这样一个FPS计数器,就可以发现在那些场景中Flash播放比较迟钝,从而优化代码和美工设计。

本人为了实现代码,折腾了1个小时多,呵呵!

1.打开Flash CS3,新建一个 ActionScript 文件,写上代码:

package
{
import flash.text.TextField;
import flash.text.TextFormat;

public class FPSText extends TextField
{
//构造器函数
   function FPSText()
   {
    setTextProp();
   }
   //设置文本方法
   function setText(msg:String):void
   {
    this.text = msg;
   }
   //设置动态文本属性
   private function setTextProp():void
   {
    //尺寸自动
    this.autoSize = "left";
    //显示最初文本
    this.text = "loading...";
    //不可选择
    this.selectable = false;
    //设置格式
    this.defaultTextFormat = getFormat();
   }
   //设置文本的样式
   private function getFormat():TextFormat
   {
    var myFmt:TextFormat = new TextFormat();
    //粗体
    myFmt.bold = true;
    //字体
    myFmt.font = "Arial";
    //字号
    myFmt.size = 16;
    //颜色
    myFmt.color = 0xFF0000;
    return myFmt;
   }
}
}

按 Ctrl + S 【保存】命令,文件名为:FPSText.as,放在桌面上。以上的代码在这里就不解释了,因为已写上注释。

2.新建一个 ActionScript 文件,文档类如下:

//帧频测试
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.getTimer;
import FPSText;

public class FPS extends Sprite
{
   //帧数
   private var numFrames:int = 0;
   //隔几个计算一次时间
   private var interval:int = 10;
   //开始时间
   private var startTime:int;
   //创建动态文本实例
   private var fpsText:FPSText = new FPSText();

   //构造器函数.传递路径参数
   public function FPS()
   {
    init();
   }
   //初始化函数
   private function init():void
   {
    //设置帧率
    stage.frameRate = 30;
    //得到开始时间
    startTime = getTimer();
    //让动态文本显示在舞台上
    addChild(fpsText);
    //注册enterFrame事件侦听器
    addEventListener(Event.ENTER_FRAME,update,false,0);
   }
   //enterFrame 事件侦听器
   private function update(event:Event):void
   {
    //如果帧数累计等于间隔数
    if (++numFrames == interval)
    {
     //得到结束时间
     var now:Number = getTimer();
     //帧数除于时间,得到帧频
     var actualFPS:Number = numFrames/((now-startTime)/1000);
     //把帧频取整,并转化为字符串,显示在动态文本中
     fpsText.setText(actualFPS.toFixed());
     //修改开始时间
     startTime = now;
     //xx帧数
     numFrames = 0;
    }
   }
}
}

保存在桌面,文件名为:FPS.as。注意:第二个as文件示本例最重要的代码。

3.新建一个 Flash 文件,打开【属性】面板,在文档类写上:FPS,然后保存在桌面,测试影片。

希望能够与大家一起分享。



郑重声明:资讯 【FPS计数器_ActionScript_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——