• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascriptとの連携について)

JavascriptとFlashの連携についての質問

このQ&Aのポイント
  • JavascriptからFlashへの連携について勉強中ですが、解決できない箇所があります。
  • Javascriptから変数を送り、Flash内で受け取り、ムービークリップの大きさや位置を変更したいです。
  • ムービークリップのインスタンス名をSetVariableで指定しても動作しないため、ご教授をお願いします。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

こちらを↓試してみてもできませんか? 「Flashゲーム講座&ASサンプル集 『JavaScriptからFlashにデータを送信する』」 http://hakuhin.hp.infoseek.co.jp/main/js/javascript.html#JAVASCRIPT_01 上記URLのものをちょっと変形して,まずはHTML。 -------------------------------------------- <HTML> <HEAD> <TITLE>JavaScript→Flash:データ送信</TITLE> <script language="JavaScript"> <!-- function myFunc(){ document.movie.SetVariable("_level0.movieX", "200"); document.movie.SetVariable("_level0.movieY", "100"); document.movie.SetVariable("_level0.movieW", "50"); document.movie.SetVariable("_level0.movieH", "80"); } //--> </script> </HEAD> <BODY> <CENTER> <B>JavaScript→Flash:データ送信</B><BR><BR> <TABLE border="1"><tr><td> <EMBED NAME="movie" src="javascript_02.swf" quality=high bgcolor=#FFFFFF WIDTH=550 HEIGHT=400 TYPE="application/x-shockwave-flash"> </td> </tr> </TABLE> <BR> <form name="Form"> <p><input type="button" value="Flashに送る" onclick="myFunc()"></p> </form> </BODY> </HTML> -------------------------------------------- このHTMLを 「任意の名前.html」 で任意のフォルダに保存します。 次にFlashですが, 「javascript_02.fla」を新規作成して, 上のHTMLと同じフォルダに保存します。 ステージ上に,任意の大きさのムービークリップを作成し, そのムービークリップに, -------------------------------------------- onClipEvent (enterFrame) { this._x = _root.movieX; this._y = _root.movieY; this._width = _root.movieW; this._height = _root.movieH; } -------------------------------------------- というスクリプトを書きます。 そして何も考えずにパブリッシュすると, 同フォルダに「javascript_02.swf」がパブリッシュされます。 そこで 「任意の名前.html」 の 「Flashに送る」 ボタンをクリックすると, そのムービークリップは, ( x , y ) = ( 200 , 100 ) の位置に移動, 横×縦=50×80 ピクセル の大きさになります。 「Shockwave Flash のメソッド」 http://www.macromedia.com/jp/support/flash/ts/documents/fl0013.html ここ↑を見ても, JavaScript から 直接 Flash を動かせるスクリプトは限られていますから, 複雑なことをさせる場合, とりあえず変数を Flash 内に送信して, その変数によって Flash の動向を変えるしかないと思います。 enterFrame は調べてもらうとすぐわかりますが, 1フレーム進む時間(フレームレート12fpsでは1秒間に12回), { } 内を実行するということです。

Yo-shin
質問者

補足

返信遅れてしまって,大変申し訳ありません。 教えていただきました方法をもとにテストしてみましたところ, 無事,動作確認いたしました。 ただ,追加の不明点があります。 通常,HTMLへswfを配置するには,OBJECTタグとPARAMタグ,EMBEDタグを 書く必要があるかと思いますが,上記のHTMLですと,それがありませんよね? なくても良いものなのでしょうか。 お礼に,重ねての質問本当にすみません。

その他の回答 (1)

noname#35109
noname#35109
回答No.2

#1です。 >> OBJECTタグとPARAMタグ, >> EMBEDタグを書く必要があるかと思いますが, >> 上記のHTMLですと,それがありませんよね? >> なくても良いものなのでしょうか。 そうです。 OBJECTタグの件に関して書き忘れていました。 通常は,EMBEDタグと同時にOBJECTタグ内の記入が必要です。 サンプルがなるべく他を排除したものでしたし, ここでの説明もなるべく他の因子を排除しようとしたために, #1で回答したようになってしまいました。 つい先日回答したものですが,ここ↓が参考になりますでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q_id=1864601  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q_id=1864601 MAC では実験していませんが(すみません手近にないもので…), Windows 環境では, OBJECTタグと,EMBEDタグの両方を記入で, ほとんどのブラウザに対応できます。 (ただし,JavaScriptを有効にしていた場合ですが。) もし,JavaScriptを有効にした上で,OBJECTタグの記入で何か不具合が生じる場合は,ちょっとわかりません。

Yo-shin
質問者

お礼

いつもご親切な,回答ありがとうございます。 教えていただきましたリンク先も確認してみました。 ご回答の件も含めて,また試行錯誤を繰り返して みたいと思います。 ほんとうにありがとうございました。

関連するQ&A

専門家に質問してみよう