Flex学習記05 - Flexのデバッグ
これまでのエントリ
今回はプログラムのデバッグ、トレースについてです。
デバッグ版 Flash Player を使うと、trace()関数で、ファイルにログを書くことができ、デバッグに便利。
詳しくはヘルプ[ログ機能]の章以降に詳しく掲載されています。
デバッガ版の Flash Player の設定
しかし、デバッグ版 Flash Playerはロードに若干時間がかかるのと、ユーザーはデバッグ版を使っていないことを想定すると、デバッグ版を入れっぱなしというのもどうかと…
また、開発もこなれてくると、あまりIDEのデバッガに頼らなくなるということもありますので、デバッグ版Flash Playerを使わないシーンでのログも必要になってくると思います。
というわけで、デバッグ版が不要なlog()関数が便利です。
AS3 でどこからでも log()
実践
入手したソースコードを、src/log.asとして作成しました。
これを、前回作成した、足し算をServlet経由で行うサンプルで試してみます。
以下の部分がlog()関数の使用例です。
log("arg1.text = " + arg1.text); log("arg2.text = " + arg2.text);
src/main.mxml(ActionScript部分を抜粋)
<mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; private function creationCompleteHandler():void { } private function send():void { var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, completeHandler); var request:URLRequest = new URLRequest("/sample-server/add"); request.method = URLRequestMethod.POST; var v:URLVariables = new URLVariables(); log("arg1.text = " + arg1.text); log("arg2.text = " + arg2.text); v["arg1"] = arg1.text; v["arg2"] = arg2.text; request.data = v; loader.load(request); } private function completeHandler(event:Event):void { //E4X (XML)に展開 var e:XML = new XML(URLLoader(event.target).data); result.text = e.sum; } private function userRequestResultHandler(event:ResultEvent):void { //for E4x result.text = event.result.sum; } ]]> </mx:Script>
FirefoxのFirebugプラグインを利用することで、実行しているブラウザ上でトレース内容が見られるようになります。