• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FlashのイベントをJavascriptで取得できるか?)

FlashのイベントをJavascriptで取得できるか?

このQ&Aのポイント
  • HTMLに、クリックして進むようにしてあるFlashアニメーションを貼り付けています。そして、Flash上の任意の場所がクリックされたとき、アニメーションが進むとともに、そのイベントをJavaScriptで拾って、特定の処理をしたいのですが、やり方がわからず困っています。
  • クリックイベントがFlashで拾われ、アニメーションは進むけれど、JavaScriptで拾えなくて困っています。そのFlashアニメーションは、他でも使うので、ここでしたい「特定の処理」をFlashに埋めることは避けたいのです。ただし、上記を実現するために、Flash側に何らかの細工が必要な場合、それをすることはいといません。
  • FlashのイベントをJavaScriptで取得する方法についてわからないとのことです。HTMLにクリックイベントを設定したFlashアニメーションがあり、そのイベントをJavaScriptで取得し、特定の処理をしたいとのことです。しかし、現在はクリックイベントがFlashで拾われ、JavaScriptでは取得できないようです。一部の処理はFlashに埋めることを避けたいとのことですが、Flashに何らかの細工をすることは問題ないようです。お知恵をお貸しください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.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

SSMSE
質問者

お礼

有難うございました。 >Flash から JavaScript に何か値や関数実行命令をくだすには, >fscommand() 関数 を使うか, >getURL()関数もしくはメソッド を使うか, >ExternalInterfaceクラス を使うかが一般的のように思います。 知りたかったのは、まさにこれらです。 方法があるかどうかさえわからなかったので、妥当なキーワードも思いつけず、困っていたのです。 本当に有難うございました。

関連するQ&A