&pgid;
Flexで、デバッグprintみたいなことをやる方法。 ⌣
** flashlog.txtを使う方法 [#p524b02a]
+ 普通にFlashをインストールすると、インストールされるのはFlash Playerで、これではきない。[[Flash Debug Playerをここからインストールする:http://www.adobe.com/support/flashplayer/downloads.html]]。
+ 次に、mm.cfgというファイルを用意する。用意するパスは、[[マニュアル:http://livedocs.adobe.com/flex/201_jp/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=logging_125_04.html#40735]]によると、
|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");
}
+ なにも表示されないけど、flashlog.txtというファイルが、自分のパソコンのどこかに生成されて、その中に、「aaa」と書いてあるはず。
flashlog.txtのパスは、[[マニュアル:http://livedocs.adobe.com/flex/201_jp/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=logging_125_04.html#40735]]によると下記らしい。
|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()を使う方法 [#q5d4ab3f]
- いちいち、flashlog.txtを見るのは面倒。
- そこで、[[AS3でどこからでもlog()−PBDーsubtech:http://subtech.g.hatena.ne.jp/secondlife/20070219/1171872801]]で紹介されているlog関数をコピーアンドペーストして、「log.as」というファイルを用意し、それを使います
- 単純に、mxmlや、asがあるのと同じディレクトリに、log.asを置いた状態で、「trace()」を使っていた箇所を「log()」に直す
- これで実行してみると、flashlog.txtも更新されてるし、FireBugのconsoleにも、「aaa」と表示されます。これは楽! &bigsmile;
** Flash Debug Playerはいずれにしても入れといた方が良い [#i8baeff3]
- log.asは、javascriptで、「console.debug」を呼び出してるだけっぽいので、Flash Debug Playerは必要ないと思います
- でも、Flash Debug Playerは、実行時エラーが発生すると、スタックトレースを表示してくるので、やっぱりインストールしておいた方が良いと思います。
#blikifooter(志田)
tag: [[Flex/tag>Flex]]