Flash作品中預設的幀速率只是理想化的,實(shí)際上Flash處理程序或是渲染圖像時(shí)需要消耗一定的時(shí)間,加上機器的差別,動(dòng)畫(huà)運行時(shí)每一幀的顯示速度不盡相同。比如在一幀中放置過(guò)多的符號,該幀的幀速率就會(huì )遠遠低于預設的幀速率,導致畫(huà)面播放不流暢,或是掉幀的情況。如果使用幀速率測試器來(lái)檢測您的動(dòng)畫(huà),則可發(fā)現上述問(wèn)題。因為幀速率測試器工作時(shí)會(huì )顯示出影片當前的平均幀速率??傊?,無(wú)論是設計游戲還是制作大型動(dòng)畫(huà),速度慢、運行不穩定的作品是不會(huì )有吸引力的,誰(shuí)也無(wú)法去忍受一個(gè)只有4幀/秒的動(dòng)畫(huà)。
設計要點(diǎn):
首先測試器本身要盡量的簡(jiǎn)單,否則會(huì )影響測試效果。測試器中主要就是一個(gè)用來(lái)輸出測試結果的動(dòng)態(tài)文本和一個(gè)重置按鈕。使用重置按鈕是為得到一個(gè)經(jīng)過(guò)準確計算的幀速率,其工作方式就是刷新測試器。測試器測試本身時(shí),顯示的幀速率應該和預設值是一樣的,我們這個(gè)例子預設為36幀/秒。
效果預覽:
設計步驟:
1、打開(kāi)Flash MX,設置場(chǎng)景大小為350px×100px,背景色為"#0E6A99"(其實(shí),場(chǎng)景的設置是無(wú)關(guān)緊要的)。按快捷鍵"Ctrl+F8"新建一個(gè)名為"fps"的影片剪輯符號。
2、在符號"fps"的場(chǎng)景里點(diǎn)擊選中工具面板中的文本工具 ,然后創(chuàng )建一個(gè)靜態(tài)文本,輸入"幀速率:"幾個(gè)字,如圖1所示。接著(zhù)再創(chuàng )建一個(gè)動(dòng)態(tài)文本框,點(diǎn)選中該動(dòng)態(tài)文本框,在其屬性面板里進(jìn)行如圖2所示的設置。最關(guān)鍵的設置是一定要定義變量"out"。
3、按快捷鍵"Ctrl+F8"新建一個(gè)名為"button"的按鈕符號(按鈕的設計要盡量簡(jiǎn)單)。在按鈕上輸入"重置"兩個(gè)字,如示例所示。
4、點(diǎn)擊按鈕,點(diǎn)選彈出菜單中的"動(dòng)作"命令,在"動(dòng)作"面板中輸入如下代碼:
on(release){ //release事件是在鼠標指針經(jīng)過(guò)按鈕時(shí)釋放鼠標按鈕
frame = 0; //變量frame的作用是紀錄當前幀數
n = getTimer(); //函數getTimer()可以返回影片已經(jīng)播放的時(shí)間,單位為毫秒
}
5、回到主場(chǎng)景中。按快捷鍵"Ctrl+L"打開(kāi)庫,把庫中的影片剪輯符號"fps"拖拽到主場(chǎng)景中。
6、右鍵點(diǎn)擊影片剪輯"fps",點(diǎn)選彈出菜單中的"動(dòng)作"命令,并在"動(dòng)作"面板中輸入如下代碼:
//onClipEvent是一個(gè)"事件"觸發(fā)器。當某個(gè)事件發(fā)生時(shí),就執行花括號中的語(yǔ)句。
//load事件是當影片剪輯被載入時(shí),即執行語(yǔ)句。
onClipEvent (load) {
frame = 1;
n = 0;
}
onClipEvent (enterFrame) { //enterFrame事件是以影片每執行一幀就執行一次語(yǔ)句
//變量time用來(lái)紀錄當前影片運行的時(shí)間
time = (getTimer( )- n)/1000;
//Math對象的ceil方法可以返回大于等于括號中數值并與其最接近的整數
//當前幀數frame除以播放時(shí)間time即可得到當前的幀速率
out = Math.ceil(frame/time);
//變量frame(幀數)進(jìn)行累加
frame++;
}
到這里,這個(gè)幀速率測試器就設計好了?,F在只要把它直接復制并粘貼到所要測試的動(dòng)畫(huà)中就可以使用了。注意,使用測試器時(shí),*先在被測試動(dòng)畫(huà)的場(chǎng)景中新建一層,然后再把測試器復制、粘貼到該層中,這樣便于調整測試器的位置以及修改和清除。原文件下載學(xué)習