AS3デバッグツール Debush の使い方
■前書き
Flashのデバッグは、ほとんどtrace()でやってるんですが、
たまにEnterFrameで値の変化を確認したい時とか、Flash Tracer(FireFoxでtraceの出力が確認できるFireFoxのアドオン)が入ってない環境で値を確認したいときもあると思います。
そういう時は確認用のTextFieldを作って値を表示させれば済むのですが、毎回それをやるのはめんどくさいです。
特にTextFieldのインスタンスをグローバルインスタンスにしたりしていると負担になり心臓に悪いです。
(みなさんは実は僕の知らない便利ツールを使ってサクッと済ませてるんでしょうか?)
そこで、毎回めんどくさいなら、すぐに値をチェックできるツールを作ってしまえということで、デバッグツール Debush(デバッシュ)を作りました。
■ダウンロード
・Debush ダウンロードページ
■使い方1:基本
下の黒いエリアはSWFです。その内、黄色いパネルがDebushのエリアです。
黄色いパネルの左上部を掴んで移動させることもできます。
下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がDebushを表示させる為の部分です。
Debushをnewで呼び出した時の引数はdebushHandler関数をどこに置くかという指定です。
debushHandler関数内に表示したい値を記述していきます。
props配列内の(0番から始まるとして)偶数のString型の値が説明で、その偶数の値の次の値が表示したいプロパティです。
2つで1ペアになります。props配列内の値の数は好きなだけ増やせます。
package { import flash.display.Sprite; import debush.Debush; public class Main extends Sprite { public function Main() { addChild( new Debush(this) ); } public function debushHandler(recordMode:String):void { var props:Array = [ "mouseX", mouseX, "mouseY", mouseY, "ball.alpha", ball.alpha, ]; Debush.update(props, recordMode); } } }
■使い方2:記録する
下のSWFでは1秒に1回、record関数を呼び出して緑のエリアにその瞬間の値を記録しています。
赤のrecordボタンを押しても緑のエリアにその瞬間の値を記録します。
緑のreceiveボタンはトグルボタンになっていて、ボタンが緑色の時はrecord関数の呼び出しに応じますが、ボタンがグレーの時はrecord関数の呼び出しに応じません。
下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がrecord関数の呼び出しです。static関数なのでクラス名で呼び出します。
package {
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import debush.Debush;
public class Main extends Sprite {
private var timer:Timer = new Timer(1000, 0);
public function Main() {
addChild( new Debush(this) );
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();
}
public function debushHandler(recordMode:String):void {
var props:Array = [
"mouseX", mouseX,
"mouseY", mouseY,
"ball.alpha", ball.alpha,
];
Debush.update(props, recordMode);
}
// タイマーハンドラ:1秒に1回呼ばれる
private function timerHandler(e:TimerEvent):void {
Debush.record();
}
}
}
以上がDebush 1.0.0 の機能の全てです。
おっと、これは面白い。
僕もtrace派なので普段はこんなやり方で確認してますぜ。
http://bit.ly/cQZcK6
それは知りませんでした!
winなので確認できませんが便利そうっすね。
ほほぅ。こないだ言ってたやつですね。w
今後のイタチライブラリにも期待してます!
そのやつです。
楽する為に苦労しましたw