Hatena::ブログ(Diary)

独学ActionScript このページをアンテナに追加 RSSフィード

2009.03.20

FlashDevelopの使い方 (5)Flex 4 SDKでtraceを表示する [改訂版]

(2009.07.05 06:34 改訂・追記) 現時点での最新版(Flash Develop 3.0.1 RTMFlex SDK 4.0.0.7219)を使用した内容に改訂し、プレビューに使用されるFlash Playerの違いについて追記しました。

以前Flex 3 SDKでtraceを表示する記事を書いたのですが、当時はよくわかっていなかった点もいくつかあって、使い勝手の悪いtrace表示しかできませんでした。それについてタロタローグ ブログさんが正しいtrace表示の手順を教えてくださったので、それを参考に現在の最新版であるFlash Develop 3.0.1 RTMFlex 4 SDKを使って改めてtrace表示の手順を書き直してみました。この手順が現時点でいちばん簡単・確実にFlashDevelopでtraceを表示する方法だと思いますが、もしもっと良い方法があれば是非教えてください。

※今回は最新版ということでFlex 4 SDKとFlashPlayer 10を使用していますが、Flex 3 SDKとFlashPlayer 9の組み合わせなどでも同じ手順でtraceを表示できます。


必要なファイル&今回試した環境

段落の下がった箇条の名称は、今回の環境で使用(インストール)したファイルです。

  1. Windows OS
  2. .NET Framework (2.0以降)  ※FlashDevelopを使用するのに必要
  3. Java Runtime Environment (1.4.2以降)  Flex SDKを使用するのに必要
  4. Flex 4 SDK または Flex 3 SDK
  5. FlashDevelop

セッティング

  • 上記の「必要なファイル」の番号順にインストールする
  • すべてのインストールが終わったら、FlashDevelopを起動して[Tools]メニューの[Program Settings](F10)を開き、左側の「AS3Context」項目の中にあるFlex SDK Location」に、Flex 4 SDKを置いた場所を指定する (例) C:\flex_sdk_4
  • 続いて同じ画面で、左側の「FlashViewer」項目の中にある「External Player Path」に、Flex 4 SDKフォルダの中にあるFlashPlayer.exeを指定する (例) C:\flex_sdk_4\runtimes\player\10\win\FlashPlayer.exe
    • すぐ下の「Movie Display Style」は、必ずデフォルト値「External」のままにしておく*1

最後の項目「External Player Path」で指定しているスタンドアローンタイプのFlash Player(ここではVer.10)はデバッグ版であり、ここで指定したFlash PlayerがFlashDevelop上からのプレビューやデバッグに使われることを意味しています。よって、ブラウザー上で使用(閲覧)しているFlash Playerとは異なりますので、バージョンの違いなどに注意してください。各バージョンのスタンドアローンタイプのFlash Playerはこちらからダウンロードできます。

外部アプリのスタンドアローン版Flash Playerではなく、Flash Developの内部(タブ)でtrace表示を行いたい場合やブラウザー用Flash Playerでtrace表示を行いたい場合は、後述するプレビューに使用されるFlash Playerの違いについて」を参照してください。


trace出力のテスト

上記の「セッティング」をすべて満たせば、FlashDevelopでtrace()メソッドを使った場合にその出力がOutputパネルに表示されるようになるはずですので、下記の手順でtraceのテストをしてみます。

  1. FlashDevelopを起動して[Project]メニューの[New Project...]を開き、New Project画面でAS3 Project」を選択して、適当なプロジェクト名を付けてOKボタンを押す
  2. Projectパネルから、srcフォルダの中にあるMain.asを開き、「// entry point」のすぐ下にtrace表示用の1行「trace("Hello, world!");」を書き足す(下記ソースコード参照)。
  3. Ctrl+EnterまたはF5キーを押してムービープレビューすると、「セッティング」で設定したFlashPlayerが新規ウィンドウで起動してスクリプトの内容がそこに表示され(今回は何も表示させてないので真っ白)、FlashDevelopのOutputパネルにtrace出力の結果「Hello, world!」が表示される(はず)

trace出力サンプルスクリプト

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	
	/**
	 * ...
	 * @author ...
	 */
	public class Main extends Sprite 
	{
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			trace("Hello, world!"); // この1行を書き足す
		}
		
	}
	
}

trace出力結果Outputパネル

f:id:ActionScript:20090511162553g:image

Build succeeded
Done (0)
[Capturing traces with FDB]
Hello, world! // ここにトレース結果が表示される!

プレビューに使用されるFlash Playerの違いについて (2009.07.05 06:34 追記)

コメント欄にて、プロジェクトプロパティのTest Movieの設定を変更した場合にtrace表示が行われなくなる場合がある、というコメントをいただきましたので、改めて最新の環境でテストをして、それぞれの設定を変えた場合の使用されるFlash Playerの違いについてまとめましたので追記します。普通に使う分には、上述したデフォルトの設定方法でおそらく問題ありませんので、ここはオマケ程度に読んでもらえればと思います。


プレビューに使用されるFlash Playerには主に2種類あり、上述した手順のFlex SDKに含まれるスタンドアローンタイプのデバッグ版Flash Playerを使う場合と、Internet Explorer用のFlash Playerを使う場合があります。このエントリーに書かれている方法は、手順を簡潔にするために前者だけを設定しているので、どこかで後者を使う設定に変えるとtrace表示がされなくなってしまいます。そのプレビューに使用されるFlash Playerが変わってしまう設定箇所は以下の2箇所です。

(A) ProjectメニューのProperties -> Outout -> 「Test Movie設定」(デフォルト値はPlay (FlashViewer default)

(B) ToolsメニューのProgram Settings -> FlashViewerの「Movie Display Style設定」(デフォルト値はExternal

この(A)と(B)の設定の組み合わせは以下の6通りになり*2スタンドアローンタイプのデバッグ版Flash Playerを使うのは最初と最後の組み合わせだけになります。それ以外はすべてInternet Explorer用のFlash Playerが使用され、このInternet Explorer用のFlash Playerがデバッグ版ではなく通常版だとtrace表示が出なくなります

(A)Test Movie設定(B)Movie Display Style設定実行されるFlash Player*3動作
Play (FlashViewer default) デフォルトExternal デフォルトスタンドアローンのデバッグ版Flash Player外部アプリ
Play (FlashViewer default) デフォルトPopupInternet Explorer用のFlash Player内部ウィンドウ
Play (FlashViewer default) デフォルトDocumentInternet Explorer用のFlash Player別タブ
Play in new tabどれを選択しても同じ(影響しない)Internet Explorer用のFlash Player別タブ
Play in popupどれを選択しても同じ(影響しない)Internet Explorer用のFlash Player内部ウィンドウ
Play in external playerどれを選択しても同じ(影響しない)スタンドアローンのデバッグ版Flash Player外部アプリ

というわけで、Internet Explorer用のFlash Playerでもtrace表示を行うには、デバッグ版のFlash Playerをインストールする必要があります。

ブラウザーのFlash Playerにデバッグ版を入れることは、個人的にはあまり好みではありませんでした。デバッグ版は通常版と再生スピードが異なる(遅くなる)、(スタンドアローンタイプに比べて)Flash Playerの変更が容易ではない、などが理由ですが、普段はFirefoxを使ってるので、滅多に使わないInternet Explorer用なら入れちゃってもいいかなと、今回のテストを行ってみてちょっと思いましたw ただ、チェック用のためにユーザーが使っている環境にできるだけ近づける、ということであれば、大多数を占めるInternet Explorer + 通常版Flash Playerという組み合わせは残した方が良いかもしれませんね。

ちなみに今回テストした環境は、Windows XP SP3、FlashDevelop 3.0.1 RTM.NET Framework 3.5、Java Runtime Environment 1.6.1.4、Flex SDK 4.0.0.7219 で、スタンドアローンタイプのデバッグ版Flash PlayerはVer.10を指定、ブラウザー用のFlash PlayerはInternet Explorer用がデバッグ版のVer.9、Netscape互換用が未インストールの状態で、Adobe Flash CSシリーズなどのオーサリングソフトも未インストール状態で行いました。


参考ページ

以下のページが今回の件を調べるに当たってとても参考になりました。素敵情報に感謝。


まとめ

このシリーズのエントリーは、「FlashDevelopの使い方」のまとめにまとめてあります。

*1:変更したい場合は後述の「プレビューに使用されるFlash Playerの違いについて」を参照

*2:本当はもっと多いですけどw

*3:わかりやすさを優先して「スタンドアローンのデバッグ版Flash Player」としていますが、厳密にはToolsメニューのProgram Settings -> FlashViewerの「External Player Path」で指定したFlash Playerです。

kuykuy 2009/07/03 23:44 Flash IDE 以外の環境は初めてだったのでとても参考になりました。ありがとうございます。
Flex SDK 4.0.0.7219 + FlashDevelop 3.0.1 RTM で試したところ、上記手順に加えて Project Properties -> Outout -> Test Movie の設定を「Play in external player」にしないと「Hello, world!」が表示されませんでした。

ActionScriptActionScript 2009/07/05 08:56 コメント&情報ありがとうございます!
こちらでも最新の環境にして再度テストしてみましたが、デフォルトの状態であれば、Test Movieの設定が「Play (FlashViewer default)」のままでもtrace表示できることを確認しました。
詳細はエントリー本文に追記しましたが、Test Movieの設定がデフォルト値の「Play (FlashViewer default)」の場合は、ToolsメニューのProgram Settings -> FlashViewerの「Movie Display Style設定」の影響を受けるので、こちらもデフォルト値の「External」である必要があります。
もしどちらもデフォルト値で、trace表示が行われないということであれば、ちょっと謎ですw
あと、Internet Explorer用のFlash Playerをデバッグ版にすることで、trace表示が行われなくなることを回避する方法についても本文内で触れてみましたので、よろしければご覧ください。個人的には、IE用デバッグ版はインストールする必要があるので普段使っていませんけどw
ここらへんはほとんど自分調べなので、間違った事を書いている可能性や環境依存な可能性も十分にありますので、そうだったらごめんなさい><

as3as3 2009/09/28 06:39 困ってたトレースについて完璧に解決しました!
本当に感謝です・・・ありがとうございました!

ActionScriptActionScript 2009/09/28 10:44 コメントありがとうございますー
お役に立てて嬉しいです!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証