a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 辦公 > Flash > 正文

ActionScript3.0中建立幀頻計(jì)數(shù)器的方法

2020-07-17 13:15:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

幀頻的重要性
每一幀上都是一幅靜止的圖片,快速連續(xù)的幀會(huì)產(chǎn)生動(dòng)畫(huà),每秒的幀數(shù)越多,展現(xiàn)的動(dòng)畫(huà)也就越流暢。

測(cè)幀頻能讓我們檢測(cè)動(dòng)畫(huà)的進(jìn)程,如果需要的話還可以優(yōu)化動(dòng)畫(huà)。

當(dāng)在不同的運(yùn)行環(huán)境中測(cè)試動(dòng)畫(huà)時(shí)這個(gè)是非常有用的,例如瀏覽器中,電腦中,電視或手機(jī)中。

我們可以通過(guò)使用getTime()方法測(cè)幀頻,并即時(shí)的在舞臺(tái)中創(chuàng)建文本域來(lái)輸出結(jié)果。

——————————————————————————–

第一步:創(chuàng)建新文檔
打開(kāi)Flash并創(chuàng)建一個(gè)新Flash文檔(ActionScript 3).

——————————————————————————–

第二步:打開(kāi)動(dòng)作畫(huà)板

執(zhí)行窗口>動(dòng)作打開(kāi)動(dòng)作面板。

——————————————————————————–

第三步:變量

我們將使用三個(gè)變量,如下所示:

var startTime:Number; //用來(lái)計(jì)算相對(duì)時(shí)間
var framesNumber:Number = 0; //當(dāng)前幀頻數(shù)
var fps:TextField = new TextField(); //展示實(shí)際幀頻的文本域

——————————————————————————–

第四步:主函數(shù)
這是計(jì)數(shù)器的主函數(shù):

function fpsCounter():void
{
startTime = getTimer(); //當(dāng)動(dòng)畫(huà)開(kāi)始時(shí)以毫秒為單位獲取時(shí)間
addChild(fps); // 向舞臺(tái)添加文本域

addEventListener(Event.ENTER_FRAME, checkFPS); //添加逐幀監(jiān)聽(tīng)器并執(zhí)行checkFPS函數(shù)
}

——————————————————————————–

第五步:檢查幀頻

這個(gè)函數(shù)將計(jì)算頻幀:

function checkFPS(e:Event):void
{
var currentTime:Number = (getTimer() – startTime) / 1000; //當(dāng)函數(shù)執(zhí)行的時(shí)候以秒為單位獲取時(shí)間

framesNumber++; //計(jì)數(shù)器加1

if (currentTime > 1) //判斷當(dāng)前時(shí)間是否比1大
{
fps.text = “FPS: ” + (Math.floor((framesNumber/currentTime)*10.0)/10.0); //計(jì)算頻幀并在文本域展示
startTime = getTimer(); //重設(shè)開(kāi)始的時(shí)間
framesNumber = 0; //重設(shè)幀數(shù)
}
}

——————————————————————————–

第六步:調(diào)用函數(shù)
用下面的一行代碼啟動(dòng)主函數(shù):

fpsCounter();

——————————————————————————–

第七步:全部的代碼:

全部的代碼是下面這樣的:

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();

——————————————————————————–

第八步:文檔類(lèi)版

可能比起時(shí)間軸代碼你更習(xí)慣用文檔類(lèi)。下面的部分說(shuō)明了如何使用。

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

你應(yīng)用這個(gè)類(lèi)在任意一個(gè)項(xiàng)目中嵌入一個(gè)這樣的頻幀計(jì)數(shù)器:

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

只要將它復(fù)制到一個(gè)新AS文件中并保存為“FPSDemo.as”就行了。

結(jié)論
這是一個(gè)使用幀頻計(jì)數(shù)器函數(shù)的基本的例子。試試并將它用到你的項(xiàng)目中。

謝謝閱讀。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 97国产精品视频人人做人人爱 | 色噜噜视频| 国产a免费| 国产精品毛片久久久久久久 | 国产精品日韩专区 | 国产真实乱全部视频 | 噜噜噜天天躁狠狠躁夜夜精品 | 国产精品免费观看 | 免费精品毛片 | 日本一区二区三区四区 | 91在线精品秘密一区二区 | 亚洲 欧美 精品 | 欧美日韩国产综合视频 | 国产真实乱全部视频 | 天天av天天操 | 国家aaa的一级看片 亚洲国产91 | 按摩高潮japanesevideo | 九九热在线观看 | 91日韩欧美 | 久久国产一区二区 | 青青草欧美 | 久久精品久久久久电影 | 亚洲 国产 另类 精品 专区 | 日韩国产在线观看 | 久久精品久久久久电影 | 国产成人一区二区三区 | 偷拍亚洲视频 | 免费观看一级毛片 | 欧美成人一区二区三区片免费 | 狠狠操夜夜操天天操 | 日本黄a三级三级三级 | 成人黄色在线视频 | 污污视频网站 | 久久久久久久久久久免费av | 五月天最新网址 | 亚洲午夜成激人情在线影院 | 亚洲精品国品乱码久久久久 | 欧美成视频 | 一区二区亚洲视频 | 国产成人精品999在线观看 | 91精品国产综合久久香蕉922 |