AS3デバッグツール Debush の使い方

■前書き
Flashのデバッグは、ほとんどtrace()でやってるんですが、
たまにEnterFrameで値の変化を確認したい時とか、Flash Tracer(FireFoxでtraceの出力が確認できるFireFoxのアドオン)が入ってない環境で値を確認したいときもあると思います。
そういう時は確認用のTextFieldを作って値を表示させれば済むのですが、毎回それをやるのはめんどくさいです。
特にTextFieldのインスタンスをグローバルインスタンスにしたりしていると負担になり心臓に悪いです。
(みなさんは実は僕の知らない便利ツールを使ってサクッと済ませてるんでしょうか?)
そこで、毎回めんどくさいなら、すぐに値をチェックできるツールを作ってしまえということで、デバッグツール Debush(デバッシュ)を作りました。

■ダウンロード
Debush ダウンロードページ

■使い方1:基本
下の黒いエリアはSWFです。その内、黄色いパネルがDebushのエリアです。
黄色いパネルの左上部を掴んで移動させることもできます。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


下のコードは、上の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関数の呼び出しに応じません。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


下のコードは、上の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 の機能の全てです。

Comments

  • おっと、これは面白い。
    僕もtrace派なので普段はこんなやり方で確認してますぜ。
    http://bit.ly/cQZcK6

    bee|2010 年 2 月 3 日 6:33 PM
  • それは知りませんでした!
    winなので確認できませんが便利そうっすね。

    usami|2010 年 2 月 3 日 7:04 PM
  • ほほぅ。こないだ言ってたやつですね。w
    今後のイタチライブラリにも期待してます!

    simo|2010 年 2 月 4 日 7:25 PM
  • そのやつです。
    楽する為に苦労しましたw

    usami|2010 年 2 月 4 日 8:02 PM

Post a comment

※承認されるまではコメントは表示されません。

Trackbacks

URL: http://b.i-tach.com/wp-trackback.php?p=221