Flash Professional CS6 for Macでプロジェクタに使用するFlash Playerをデバッグ版にする

誰だFlashは滅びるとか言ったの。Flashの仕事しかしてないぞここ最近。

前置き

当方、普段からMacを使用している関係で、Flash制作ももちろんMacで行なっているんだけれども、SWFは本来ブラウザで読み込んで実行するものなので、フォントの見た目以外でWindowsを意識して作る必要性はないのだが、極希に「Windowsで実行できるスタンドアロンFlash」を作ってという案件を受けることがあって、そうなると「Macで制作して、Windowsで実行する」という形になるのだが、それってつまりFlash Professionalというデバッガが使えないということになり、はてさて困ったもんだと。

プロジェクタとは

Flashは普通に書きだすとSWFとHTMLとが書き出されるわけだけれども、それ以外にも静止画像(GIF、JPG、PNG)やプロジェクタ書き出し(Win, Mac)ができる。このプロジェクタというのは、「FlashPlayerとSWFとをパッケージにすることで、FlashPlayerを入れてないPCでも単体でFlashを開ける」というものである。FlashPlayerが入ってなくても、SWFとセットでパッケージされているから、「開けない問題」が起きないというものである。

デバッグが出来ない

ただ、一方で、WindowsMacとでは実行形式が違うので、Windows実行用で書きだしてしまうとMacでは開くことが出来ない。そうなると、書きだしたプロジェクタ(Win)をWindows機に持って行って実行することになる。そしてそれはもうFlash Professionalというデバッガから完全に切り離されるので、まったくデバッグが出来ないのである。
また、FlashPlayerには、“標準版”とtrace()文の出力を外部ファイルに書き出してくれる“デバッガ版”というのがあるのだが、埋め込まれるFlash Playerは標準版のため、trace()文が出力されない。これではいわゆるプリントデバッグすら出来ないのである。

対策

逆に考えよう。この埋め込まれるFlash Playerをデバッガ版にすることが出来れば、プリントデバッグができるのである。

MacFlash Professional CS6は、その中に埋め込まれるFlash Playerを持っている。下記のディレクトリの中に「FlashPlayer.exe」というWindows版プレイヤーなどが入ってるのだが、このFlash Playerをデバッガ版と差し替えればよい。

/Applications/Adobe Flash CS6/Players

1.デバッガ版FlashPlayerをダウンロードする
下記サイトより、「Download the Windows Flash Player XX.X Projector content debugger (EXE, XX.XMB)」と書かれているリンクをクリックして、デバッガ版スタンドアロンプレイヤーを手に入れよう。
Adobe Flash Player - Debug Downloads

2.Playersディレクトリを開く
下記のディレクトリを開いてくだしあ。

/Applications/Adobe Flash CS6/Players

3.上書け
ダウンロードしてきたファイルは、ファイル名が違うので、「FlashPlayer.exe」に名前を変えて上書こう。同じディレクトリ内に「Debug」というディレクトリがあると思うが、これも実はデバッガ版なので、別に新しくダウンロードしてくる必要はないが、まぁ最新版の方がいいでしょ?

これだけでは終わらない

これをやってプロジェクタ書き出しをすると、ちゃんとデバッガ版が埋め込まれるようにはなるのだが、実はこれだけでは「trace文」を見ることが出来ない。実は、デバッガ版は「別に用意したコンフィグファイルに従って動作する」のである。しかしこのコンフィグファイル、自動的に生成してくれたりはしない。自分で指定の場所に置く必要がある。
場所やコンフィグファイルについての詳細などは下記のサイトにある。
http://livedocs.adobe.com/flex/3_jp/html/help.html?content=logging_04.html

今回はWindowsで試したいので、

  • mm.cfgをユーザーディレクトリ直下に置く
  • trace文を記録する指示を書く
  • プロジェクタを起動する
  • Adobe指定のディレクトリ( C:\Users\\AppData\Roaming\Macromedia\Flash Player )にLogs/flashlog.txtができてるか確認する

という事をする。
ちなみに、今回、mm.cfgに書いた設定は下記の通り

ErrorReportingEnable=1
MaxWarnings=100
TraceOutputFileEnable=1

俺の環境ではこれで目的が達成された。
あとは、テキストファイルが更新されると自動的に表示を更新するアプリケーションを見つけ、それで監視するだけだ。

Flash Professional CCではプロジェクタ埋め込み書き出しができない

なぜこの機能が消えてしまったのか。存在していてもなんの弊害もないだろうに、全く不可解である。