FlashからDirectorにメッセージを送る
FlashからDirectorにメッセージを送る手法をご紹介します。Flash側で使うアクショ ンは'Get URL'です。典型的なケースとして、Flashボタンからのメッセージ送信を前提に解説をいたします。イベントの部分を変更すれば、他の場合にも応用は可能です。| 1 | ブラウザを起動して指定URLを開く Flashでは'Get URL'でURLを指定すると、そのURLに移動することができます(Flahsオンラインヘルプ「ほかの URL へジャンプ」を参照)。 このアクションは、Directorでは'getURL'メッセージとして受取ることができます。 ビヘイビアはそのFlashスプライトに設定します。指定URLもパラメータとして受け取 れますが、第2パラメータになります。第1パラメータには'me'を置く必要がありますので,ご注意ください。ブラウザを起動して指定URLを開くには、'gotoNetPage'コマンドを使用します。 ・Flash On (Release) Get URL ("http://www.macromedia.com/jp/") End On ・Director -- [ブラウザを起動して指定URLを開くビヘイビア] on getURL me, sURL gotoNetPage sURL end |
| 2 | FlashからLingoコマンドを実行する Flashから直接Lingoコマンドを実行することもできます。この場合URLの指定に替えて、'lingo:'に続けて実行したいLingoコマンドを記述します。Director側でのスクリプティングは不要です。ただ、Flashで直接実行できるLingoコマンドは基本的にひとつのステートメントです。また、スクリプトの修正やデバッグがやりにくい面もあります。 ・Flash On (Release) Get URL ("lingo: puppetSound "Click"") End On |
| 3 | Flashからムービースクリプトにメッセージを送る Flashからメッセージを送って、ムービースクリプトのハンドラを実行することも可 能です。この場合、2と同様'lingo:'に続けてムービースクリプトのハンドラ名を記述します。Director側では、ムービースクリプトにそのハンドラを書いておきます。 メッセージとともに、パラメータを渡すこともできます。 この方法なら2行以上のステートメントを実行することも可能ですし、2と比べてスクリプティングの自由度は増します。ただ、多くのFlashキャストメンバーを使ってメッセージ送信を行おうとすると、ムービースクリプトが雑然と並ぶことにもなり、ビヘイビアのスクリプティングとしてはあまり望ましくありません。 ・Flash On (Release) Get URL ("lingo: xFlashMouseUp "Click"") End On ・Director -- [メッセージを受けて指定されたサウンドを再生するムービースクリプト] on xFlashMouseUp sSoundName puppetSound sSoundName end |
| 4 | Flashからスプライトにメッセージを送る Flashの'Get URL'のURLに、'lingo:'ではなく'event:'に続けてメッセージを記述すると、自身のFlashスプライトに対してメッセージが送れます。メッセージを受取るハンドラをFlashスプライトのビヘイビアとして書けば、ムービースクリプトに記述する必要がありません。メッセージを受取るハンドラがFlashスプライトのビヘイビアにない場合は、ムービースクリプトに送られます。ただし、ビヘイビアに書くハンドラの第1パラメータは'me'にする必要があります。Flashから渡されたパラメータは 第2パラメータになりますので、ご注意ください。 ビヘイビアとしてスプライトに設定すれば、Flashキャストメンバーを多く使って も、スプライト単位のスクリプト設定ができますので、自由度は大きく増します。 ・Flash On (Release) Get URL ("event: xFlashMouseUp "Click"") End On ・Director -- [メッセージを受けて指定されたサウンドを再生するビヘイビア] on xFlashMouseUp me, sSoundName puppetSound sSoundName end |