Flex/デバッグの仕方 http://www.ark-web.jp/sandbox/wiki/297.html
Flexで、デバッグprintみたいなことをやる方法。
flashlog.txtを使う方法 †
- 普通にFlashをインストールすると、インストールされるのはFlash Playerで、これではきない。Flash Debug Playerをここからインストールする。
- 次に、mm.cfgというファイルを用意する。用意するパスは、マニュアルによると、
らしい。
Macintosh OS X MacHD:Library:Application Support:macromedia:mm.cfg Microsoft Windows XP C:\Documents and Settings\user_name\mm.cfg Windows 2000 C:\mm.cfg Linux home/user_name/mm.cfg
mm.cfgの内容は次のようなものErrorReportingEnable=1 TraceOutputFileEnable=1
他にもいろいろオプションを設定できるみたいで、詳しくはマニュアルを。 - 次のようなファイルを用意してコンパイルして、見てみる
- debug_sample.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()"> <mx:Script source="debug_sample.as"/> </mx:Application>
- debug_sample.as
public function initApp():void { trace("aaa"); }
- debug_sample.mxml
- なにも表示されないけど、flashlog.txtというファイルが、自分のパソコンのどこかに生成されて、その中に、「aaa」と書いてあるはず。
flashlog.txtのパスは、マニュアルによると下記らしい。Windows C:\Documents and Settings\ユーザー名\Application Data\Macromedia\Flash Player\Logs Macintosh Users/ユーザー名/Library/Preferences/Macromedia/Flash Player/Logs/ Linux home/ユーザー名/macromedia/Flash_Player/Logs/flashlog.txt
log()を使う方法 †
- いちいち、flashlog.txtを見るのは面倒。
- そこで、AS3でどこからでもlog()−PBDーsubtechで紹介されているlog関数をコピーアンドペーストして、「log.as」というファイルを用意し、それを使います
- 単純に、mxmlや、asがあるのと同じディレクトリに、log.asを置いた状態で、「trace()」を使っていた箇所を「log()」に直す
- これで実行してみると、flashlog.txtも更新されてるし、FireBugのconsoleにも、「aaa」と表示されます。これは楽!
Flash Debug Playerはいずれにしても入れといた方が良い †
- log.asは、javascriptで、「console.debug」を呼び出してるだけっぽいので、Flash Debug Playerは必要ないと思います
- でも、Flash Debug Playerは、実行時エラーが発生すると、スタックトレースを表示してくるので、やっぱりインストールしておいた方が良いと思います。
tag: Flex/tag?