SWFをパブリッシュする際にフレームレート(1秒あたりのフレーム数)を設定する事ができますが、 再生される際に設定通りのレートがで動くわけではありません。 再生するマシンスペック等により実際のフレームレートは変動します。 実質どの程度のフレームレートが出ているかを計算する方法はあると思います。 ちょっとどのように計算するか聞かれましたので、需要あるのかなとあげてみたいと思います。

コードは以下のようになります。

//変数定義 var currentTime;//現在の時間用 var frameTime;//フレーム間のミリ秒数用 var prevFrameTime = getTimer();//前フレームのミリ秒数格納用 var secondTime;//ミリ秒格納用 var prevSecondTime = getTimer();//1000ミリ秒経過を確認する変数 var frames = 0;//再生フレーム数 var counter = this.createEmptyMovieClip("counter", this.getNextHighestDepth());//毎フレーム計算するためのダミーMC counter.onEnterFrame = function(){ currentTime = getTimer(); frameTime = currentTime - prevFrameTime;//フレーム間の経過ミリ秒 secondTime = currentTime - prevSecondTime;//経過ミリ秒 if(secondTime >= 1000) {//1000ミリ秒(1秒)以上経過したら frames = 0; prevSecondTime = currentTime; }else{ frames++; } prevFrameTime = currentTime;//現在のミリ秒を再代入 } _root.fps_txt.text = frames.toString() + " FPS / "+frameTime+ " MS";

最後にステージに表示用のfps_txtというテキストフィールドを用意します。

プレビューする際に表示してあげたりすると、ちょっとできる感がでていいかもしれませんね。 ただ、あくまでも目安なのであしからずです。

HTML5飯