FlashにFPSを表示する
/** * Fps表示クラス * * 動作環境: Flash 6 以降 (ActionScript2.0) */ class Fps { /** * コンストラクタ * @param param 設定値(省略可){ interval:取得間隔, textColor:Fpsの表示色 } */ public function Fps(param:Object) { var fpsBase = _root.createEmptyMovieClip("FpsCounterBase", _root.getNextHighestDepth()); fpsBase.createTextField("FpsCounterText", 0, 0, 0, 60, 30); var textF:TextField = fpsBase.FpsCounterText; textF.textColor = param.textColor == undefined ? 0x000000 : param.textColor; textF.selectable = false; var frameCount = 0; var interval = param.interval == undefined ? 20 : param.interval; var oldTime = getTimer(); fpsBase.onEnterFrame = function() { if(++frameCount >= interval){ var currentTime = getTimer(); var fps = interval * 1000 / (currentTime - oldTime); textF.text = Math.round(fps * 10) / 10 + " fps"; frameCount = 0; oldTime = currentTime; } } } }
このクラスの使い方
スクリプトのどこかに、
new Fps();
と書くだけでOKです。
デバッグのときだけ表示したいって場合にも、リリースの時にこの一行をコメントアウトするだけでOKなので楽ですね。
Fpsの表示色を変えたいときは
new Fps({textColor:0xffffff});
とやれば、変更できます。
本当は表示位置やらTextFormatやらを同じように指定できるようにしたかったのですが、ごちゃごちゃしそうなのでやめておきました。
もし、フォーマットとかサイズを変更したい場合は適当に改変してください。
ファイルとしても置いておきます。
Fps.as