フレームレートはコンフィグXMLファイルから設定できます。
CPUの処理が追いつかないときはこの値を下回ることもあります。
<flex-config>
<output>Main.swf</output>
<default-size>
<width>400</width>
<height>300</height>
</default-size>
<default-frame-rate>60</default-frame-rate>
<default-background-color>0xFFFFFF</default-background-color>
<use-network>false</use-network>
</flex-config>
フレームレートは60はやり過ぎかも。
30もあれば十分な気がする。
package
{
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public class Main extends Sprite
{
private var tOld:Number;
private var tFPS:TextField = new TextField();
public function Main()
{
//FPS表示用TextField
tFPS.width = 200;
tFPS.height = 20;
tFPS.x = 0;
tFPS.y = 0;
this.addChild(tFPS);
tOld = getTimer();
//毎フレーム呼ばれるイベントを登録
this.stage.addEventListener(Event.ENTER_FRAME, OnEnterFrame);
}
private function OnEnterFrame(e:Event):void
{
//FPSの計算
//getTimerで再生開始からの時間をミリ秒単位で取得できる
var tNew:Number = getTimer();
if(tNew == tOld) {
//このプログラム、何もしてないのでここを通ることもあります。
} else {
//前回フレームからの経過時間を元に小数点1桁までFPSを表示
var rate:Number = Math.round( 10000/(tNew-tOld) )/10;
tFPS.text = rate.toString() + " FPS";
tOld = tNew;
}
}
}
}