- ベストアンサー
FlashのイベントをJavascriptで取得できるか?
- HTMLに、クリックして進むようにしてあるFlashアニメーションを貼り付けています。そして、Flash上の任意の場所がクリックされたとき、アニメーションが進むとともに、そのイベントをJavaScriptで拾って、特定の処理をしたいのですが、やり方がわからず困っています。
- クリックイベントがFlashで拾われ、アニメーションは進むけれど、JavaScriptで拾えなくて困っています。そのFlashアニメーションは、他でも使うので、ここでしたい「特定の処理」をFlashに埋めることは避けたいのです。ただし、上記を実現するために、Flash側に何らかの細工が必要な場合、それをすることはいといません。
- FlashのイベントをJavaScriptで取得する方法についてわからないとのことです。HTMLにクリックイベントを設定したFlashアニメーションがあり、そのイベントをJavaScriptで取得し、特定の処理をしたいとのことです。しかし、現在はクリックイベントがFlashで拾われ、JavaScriptでは取得できないようです。一部の処理はFlashに埋めることを避けたいとのことですが、Flashに何らかの細工をすることは問題ないようです。お知恵をお貸しください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> そのFlashアニメーションは、他でも使うので、 > ここでしたい「特定の処理」をFlashに埋めることは避けたいのです。 > (ただし、上記を実現するために、 > Flash側に何らかの細工が必要な場合、それをすることはいといません。) ここの意味がよくわかりませんが...。 Flash 内の1つ1つの動作をJavaScriptで把握することはできないので, JavaScriptに把握してもらいたいイベントが起こったとき, そのイベントを Flash から JavaScript に変数もしくは関数実行命令を送信すれば良いのではないでしょうか。 例えば, ActionScript の, MovieClipA.alpha = 50; のようなものは決してJavaScriptにはわからないので, MovieClipA.alpha = 50; をすると同時に, hogehoge = "123"; のようなものを送るとかです。 hogehoge = "123"; が送られて来たら, JavaScriptで何か動作をさせれば連動ができますよね。 また,変数を送信するというようなまどろっこしいことはせずに, Flash 内で何かの動作をすると同時に, JavaScript に定義した何某かの関数を ActionScript で実行させても良いです。 Flash から JavaScript に何か値や関数実行命令をくだすには, fscommand() 関数 を使うか, getURL()関数もしくはメソッド を使うか, ExternalInterfaceクラス を使うかが一般的のように思います。 古くから Adobe(Macromedia) が推奨しているのは, fscommand() 関数 です。 しかし,コレはいまひとつ使いにくいです。 JavaScript の関数名などに制約が多いです。 あまり推奨されていませんが, みなさんが古くから多く使われているのが,getURL です。 ブラウザが普通ではない状態になるのが欠点です(HTMLのアニメーションGIFが止まるとか)。 最近使えるようになって, Adobe が推奨しているのが ExternalInterfaceクラス です。 それぞれに JavaScript を付けて検索すると色々な事例が見つかると思います。 http://www.google.co.jp/search?hl=ja&q=fscommand+JavaScript http://www.google.co.jp/search?hl=ja&q=getURL+JavaScript http://www.google.co.jp/search?hl=ja&q=ExternalInterface+JavaScript
お礼
有難うございました。 >Flash から JavaScript に何か値や関数実行命令をくだすには, >fscommand() 関数 を使うか, >getURL()関数もしくはメソッド を使うか, >ExternalInterfaceクラス を使うかが一般的のように思います。 知りたかったのは、まさにこれらです。 方法があるかどうかさえわからなかったので、妥当なキーワードも思いつけず、困っていたのです。 本当に有難うございました。