建立在Actionscript3.0帧速率计数器的方法

点评:在本教程中,您将学习如何在Flash中的当前帧频率测量和显示。






帧频的重要性
每帧都是静止的画面,快速连续的帧每秒会产生更多的帧数,动画、动画的显示都是流畅的。

帧频率测量允许我们检测动画的过程,动画可以根据需要进行优化。

当在不同的运行环境中测试动画时,这非常有用,例如在浏览器中、在计算机中、在电视上或在移动电话中。

我们可以利用时间的输出结果()方法测量帧频率和在舞台上创建一个文本字段。

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第一步:创建一个新文档
打开闪光灯,创建一个新的Flash文档(Actionscript 3)。



Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第二步:打开电影板

执行窗口>操作打开操作面板。



Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第三步:变量

我们将使用三个变量,如下所示:

VaR的开始时间:数; / /用来计算相对时间
无功framesnumber:数量= 0; / /当前帧号
VaR的FPS:TextField =新(文本); / /实际帧频显示文本字段

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第四步:主要功能
这是柜台的主要功能:

功能fpscounter():无效
{
开始时间=(getTimer); / /动画开始时以毫秒为单位的时间
addChild(FPS); / /添加一个文本字段的阶段

AddEventListener(event.enter_frame,checkfps); / /添加帧监控和执行checkfps功能
}

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第五步:检查帧频率

这个函数将计算频率帧:

功能checkfps(E:事件):无效
{
var =当前时间:数(getTimer)(ndash;StartTime) / / / 1000;当函数执行时间秒

framesnumber + +; / /计数器加1

如果(当前时间> 1) / /判断当前时间大于1
{
fps.text = FPS:(math.floor +((framesnumber /时间)×10)/ 10); / /计算文本框中显示的频率域
开始时间=(getTimer); / /复位启动时间
framesnumber = 0; / /复位。
}
}

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第六步:调用函数
使用以下代码行启动主函数:

FpsCounter();

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第七步:所有代码:

整个代码如下所示:

VaR的开始时间:数;
无功framesnumber:数量= 0;
VaR的FPS:TextField =新的文本框();

功能fpscounter():无效
{
StartTime = getTimer();
addChild(FPS);

AddEventListener(event.enter_frame,checkfps);
}

功能checkfps(E:事件):无效
{
VAR时间:数量=(getTimer()ndash;开始时间)/ 1000;

framesnumber + +;

如果(当前时间> 1)
{
fps.text = FPS:+(Math.floor(((framesnumber /时间)×10)/ 10);
StartTime = getTimer();
framesnumber = 0;
}
}

FpsCounter();

Mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ; ;; ;

第八步:文档类

您可能更习惯于使用文档类而不是时间轴代码。

包裹
{
进口flash.display.movieclip;
进口flash.text.textfield;
进口flash.events.event;
进口flash.utils.gettimer;

fpsdemo扩展MovieClip类
{
公共变量开始时间:数;
公共变量framesnumber:数量= 0;
公共变量FPS:TextField =新的文本框();

公共函数FPSDemo()
{
FpsCounter();
}

公共功能fpscounter():无效
{
StartTime = getTimer();
addChild(FPS);

AddEventListener(event.enter_frame,checkfps);
}

公共功能checkfps(E:事件):无效
{
VAR时间:数量=(getTimer()ndash;开始时间)/ 1000;

framesnumber + +;

如果(当前时间> 1)
{
fps.text = FPS:+(Math.floor(((framesnumber /时间)×10)/ 10);
StartTime = getTimer();
framesnumber = 0;
}
}
}
}

您可以使用这个类在任何项目中嵌入这样的频率帧计数器。

无功fpsdemo:fpsdemo =新fpsdemo();
addChild(fpsdemo);

只是将它复制到一个新的文件并将其保存为FPSDemo.as它的所有权利。

结论
这是使用帧频率计数器函数的一个基本示例。请尝试在您的项目中使用它。

谢谢你的阅读。