Accessibility

Director TechNote

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

ID: dr0209
Product: Director
Versions: ---
OS: ---
Browser: N/A
Server: N/A
Database: N/A
Former ID: N/A