在ActionScript3.0中建立帧频计数器-Flash actionscript

2016-03-18 15:04 42 1 收藏

下面是个简单易学的在ActionScript3.0中建立帧频计数器-Flash actionscript教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - FLASH 】

poluoluo核心提示:如何在ActionScript3.0中建立一个帧频计数器.

在这个教程中,你将学会如何测量Flash中当前的帧频,并将其显示出来。

帧频的重要性
每一帧上都是一幅静止的图片,快速连续的帧会产生动画,每秒的帧数越多,展现的动画也就越流畅。

测帧频能让我们检测动画的进程,如果需要的话还可以优化动画。

当在不同的运行环境中测试动画时这个是非常有用的,例如浏览器中,电脑中,电视或手机中。

我们可以通过使用getTime()方法测帧频,并即时的在舞台中创建文本域来输出结果。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第一步:创建新文档
打开Flash并创建一个新Flash文档(ActionScript 3).

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第二步:打开动作画板

执行窗口动作打开动作面板。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第三步:变量

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

var startTime:Number; //用来计算相对时间
var framesNumber:Number = 0; //当前帧频数
var fps:TextField = new TextField(); //展示实际帧频的文本域

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第四步:主函数
这是计数器的主函数:

function fwww.Tulaoshi.compsCounter():void
{
startTime = getTimer(); //当动画开始时以毫秒为单位获取时间
addChild(fps); // 向舞台添加文本域

addEventListener(Event.ENTER_FRAME, checkFPS); //添加逐帧监听器并执行checkFPS函数
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第五步:检查帧频

这个函数将计算频帧:

function checkFPS(e:Event):void
{
var currentTime:Number = (getTimer() – startTime) / 1000; //当函数执行的时候以秒为单位获取时间

framesNumber++; //计数器加1

if (currentTime 1) //判断当前时间是否比1大
{
fps.text = FPS: + (Math.floor((framesNumber/currentTime)*10.0)/10.0); //计算频帧并在文本域展示
startTime = getTimer(); //重设开始的时间
framesNumber = 0; //重设帧数
}
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第六步:调用函数
用下面的一行代码启动主函数:

fpsCounter();

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第七步:全部的代码:

全部的代码是下面这样的:

var startTime:Number;
var framesNumber:Number = 0;
var fps:TextField = new TextField();

function fpsCounter():void
{
startTime = getTimer();
addChild(fps);

addEventListener(Event.ENTER_FRAME, checkFPS);
}

function checkFPS(e:Event):void
{
var currentTime:Number = (getTimer() – startTime) / 1000;

framesNumber++;

if (currentTime 1)
{
fps.text = FPS: + (Math.floor((framesNumber/currentTime)*10.0)/10.0);
startTime = getTimer();
framesNumber = 0;
}
}

fpsCounter();

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

第八步:文档类版

可能比起时间轴代码你更习惯用文档类。下面的部分说明了如何使用。

package
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.utils.getTimer;

public class FPSDemo extends MovieClip
{
public var startTime:Number;
public var framesNumber:Number = 0;
public var fps:TextField = new TextField();

public function FPSDemo()
{
fpsCounter();
}

public function fpsCounter():void
{
startTime = getTimer();
addChild(fps);

addEventListener(Event.ENTER_FRAME, checkFPS);
}

public function checkFPS(e:Event):void
{
var currentTime:Number = (getTimer() – startTime) / 1000;

framesNumber++;

if (currentTime 1)
{
fps.text = FPS: + (Math.floor((framesNumber/currentTime)*10.0)/10.0);
startTime = getTimer();
framesNumber = 0;
}
}
}
}

你应用这个类在任意一个项目中嵌入一个这样的频帧计数器:

var fpsDemo:FPSDemo = new FPSDemo();
addChild( fpsDemo );

只要将它复制到一个新AS文件中并保存为FPSDemo.as就行了。

结论
这是一个使用帧频计数器函数的基本的例子。试试并将它用到你的项目中。

谢谢阅读。

来源:http://www.tulaoshi.com/n/20160318/1886129.html

延伸阅读
标签: FLASH flash教程
看效果: 那天在网上看到一个效果,感觉不错,今天晚上没事自己也模仿了一下。做得不好,希望大家不要见笑! ////// //椭圆短半轴 var H = 80; //椭圆长半轴 var W = 200; //定义弧度的增量n var n = 0; //定义椭圆的中心坐标 var cenX = Stage.width/2; var cenY...
标签: FLASH flash教程
本例我们将开始学习AS的相关知识,不要被这个题目吓倒哦,AS的确是一种程序语言,我们编写AS代码就叫做编程,我们学习AS首先应该克服对编程的恐惧,所以在开始学习前,我们先廷着胸大声地说:"编程其实很容易"。 ActionScript是针对Flash Player的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将...
标签: FLASH flash教程
poluoluo核心提示:在本AS3.0教程中我们将学习到间隔循环的三种表现方式,希望对朋友们有所帮助. 在本AS3.0教程中我们将学习到间隔循环的三种表现方式,希望对朋友们有所帮助~~ 如果想使动画不依赖于帧频,可使用3种方法: 1、setlnterval()函数 setlnterval()函数作用是每隔一定的时间,就调用函数 setlnterval()函数的形式为: se...
标签: Web开发
代码如下: script Language="javascript"  var seconds = 10;//记数时间  var handle;//事件柄  //开始记数器  function startTimer() {   handle = setInterval("timer()",1000);  }  //结束记数器  function stopTimer() { ...
标签: PHP
  概述: 此设计可以在本计数器基础之上设计计数分析程序,可以对页面访问、ip访问次数进行分析,并形成报表。 一、数据库设计 数据库采用mysql 相关文件:    createDatabase.sql        创建数据库           &nb...

经验教程

459

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部