弊社PG再び。前回解説してくれたmProjectorのお話です。

前回mProjectorとMDM Zincの比較を行いましたが、今回は実際にmProjectorを使う場合のコードや注意点を簡単に紹介したいと思います。

クリックメニュー

mProjectorをインストールすると「mMenu」Objectが使用可能になり、「mMenu」に対して操作することによりメニューを管理します。
基本的には以下のような形式になります。

//「Right Click Menu」一旦メニューをクリアします mMenu.removeAllItems( 'Right Click Menu' ); //メニューアイテムの追加 mMenu.addItem( '_level0へ (&U)', 'Right Click Menu' ); //区切り線の追加 mMenu.addSeparator( 'Right Click Menu' ); mMenu.addItem( '終了 (&Z)', 'Right Click Menu' ); //「Right Click Menu」と「System Tray Menu」で処理を分けたい場合 //「menuName」の内容を見て判断する。 mMenu.onCommand = function( menuName:String, itemName:String ) { if ( itemName == '終了 (&Z)' ) { mApplication.quit(); } else if ( itemName == '_level0へ (&U)' ) { getURL("/","_blank"); } };

上記コードを組み込むと本体を右クリックした際に以下のようなメニューが表示されます。

また、上記コード内の「Right Click Menu」を「System Tray Menu」へ変更すると、本体ではなくタスクトレイアイコンをクリックしたときのメニューを制御できます。
ちなみに、本体内で右クリックメニューを変更したい場合、変更したいMCの「onRollOver」時に「Right Click Menu」を一旦クリアしてから再設定する方法で行うようです。(「onRollOut」時に元に戻す)

あと細かい点ですが、「mMenu.addItem」でアイテムを追加する際に「(&Z)」のようにショートカットキーを設定できます。
(この場合、メニューが表示されているときに「z」キーを押すと、「(&Z)」が設定されたアイテムが実行されます)

日本語

mProjector自体はファイルパスやtrace windowでの日本語表示ができませんが、exe化されるアプリに関しては日本語表示が可能です。
ただ、text boxへの日本語入力は可能ではありますが、変換を確定しても未確定状態のまま表示されていたり、文字を削除しても表示が消えなかったりと、あまり実用的ではありませんでした。

デバッグ

windowsアプリ化した場合、通常の「trace」では内容が取得できないので「mApplication.trace」を使用します。
通常の「trace」と同じように使用できますが、日本語は化けます。

最後に、今回はwindowアプリ化での機能追加がクリックメニューの追加程度だったため問題なかったのですが、Windowアプリとしては簡単な内容でもmProjectorに備わっていない機能はどうしても実装不可能になってしまうため、事前評価が重要だと感じました。
ただ、Flash->exeのコンバータとしては再現性が高いため、簡単な機能追加のみなら実用になると思います。

HTML5飯