- 締切済み
htmlからflashに引数を変数で受け取リ方
初めてですがよろしくお願いします。 まず異なった最初のページ index1.htmlとindex2.htmlというページから変数をセットして 同じ飛び先、main.htmlにリンクします。 そのmain.htmlのmain.swfで変数を受け取り index1.htmlとindex2.htmlから受け取った変数に応じて アクションを起こしたいのです。 夜分すみません。わかる方がいらっしゃいましたら、ご伝授の程、 よろしくお願いいたします
- みんなの回答 (1)
- 専門家の回答
みんなの回答
HTML から HTML に送信される 引数 を Flash で受け取るわけですから, 途中に何かを仲介させる必要があります。 一般的には JavaScript でしょう。 以下は,JavaScript を仲介して, HTML に表示されている SWF に変数を受けわたす一例のサンプルです。 「index1.html」 のHTML コード例 ------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>index1</title> </head> <body> <p>インデックス1のページ</p> <p><a href="main.html?mynum=1">メインページへ</a></p> </body> </html> ------------------------------------ 「index1.html」 のHTML コード例 ------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>index2</title> </head> <body> <p>インデックス2のページ</p> <p><a href="main.html?mynum=2">メインページへ</a></p> </body> </html> ------------------------------------ 「main.html」 のHTML+JavaScript コード例1 ------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>main</title> </head> <body> <p>メインページ</p> <p> <script type="text/javascript"> // URL を 「?」で分けて2番目の要素([1])を mydata に代入 var mydata = location.href.split("?")[1]; // Flash表示のタグの書き出し document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">'); document.write('<param name="movie" value="main.swf?'+mydata+'" />'); document.write('<embed src="main.swf?'+mydata+'" width="550" height="400" type="application/x-shockwave-flash" />'); document.write('</object>'); </script> </p> </body> </html> ------------------------------------ この状態で, 「main.swf」 の _root(メインムービーのタイムライン)のステージ上に, 「mynum」という "変数名"(インスタンス名ではありません) のテキストフィールドを用意しておくと, 「1」とか「2」が表示されますから, 「mynum=1」とか「mynum=2」が,それぞれの HTML から送られてくることが確認できると思います。 また, HTML から Flash に変数を送信するときに使われる, 「FlashVars」 を使っても同様のことができます。 「main.html」 のHTML+JavaScript コード例2 ------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>main</title> </head> <body> <p>メインページ</p> <p> <script type="text/javascript"> // URL を 「?」で分けて2番目の要素([1])を mydata に代入 var mydata = location.href.split("?")[1]; // Flash表示のタグの書き出し document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">'); document.write('<param name="movie" value="main.swf" />'); document.write('<param name="FlashVars" value="'+mydata+'" />'); document.write('<embed src="main.swf" FlashVars="'+mydata+'" width="550" height="400" type="application/x-shockwave-flash" />'); document.write('</object>'); </script> </p> </body> </html> ------------------------------------ 「main.html」 のHTML+JavaScript コード例1 も 2 も, Flash を表示させるタグは 必要な部分だけに省略していますが, 普通にはこれでも十分表示されると思います。 ActionScriptでは, MovieClipクラス,あるいは Buttonクラス,あるいは TextFieldクラスの 「_url」 プロパティで, SWF自体 の URL を参照(取得)することはできますが, SWFが貼りついている HTML などの URL は参照できません。 したがって,ActionScript だけでは無理ということになります。 ActionScriptだけでは無理と言うより, 上記の例では ActionScript は全く登場していませんね。 もっと カッコイイ JavaScript の書き方はできると思いますが, 私は JavaScript の専門でないため,この辺で...。