- ベストアンサー
HTML上の画像にマウスオーバーして、同HTML内にswfを表示させたい
HTMLページ内のサムネイル画像にマウスオーバーして大きい画像を表示させるJavaScriptがありますが、そういうイメージでswfの表示ができないでしょうか。 マウスオーバーじゃなくて、クリックでもいいのですが、ポップアップウインドウや別ページに表示させるのではなく、サムネイル画像をクリックすると、同一ページのお決まりの場所でswfムービーを表示させたいのです。 表示させるムービーは、音声が流れたり、swf内で数ページクリックして内容が見れるものです。誰か、ご存知の方、いらっしゃいませんか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SWF 内のボタンによって,SWF 内の画像を変えるわけではなく, HTML 上のボタンにによって,表示させる SWF 自体を変えるというわけですね。 それは Flash のテクニックではありません。 HTMLページ内の JPEG にマウスオーバーたときに大きい JPEG を表示させるのが, Photoshop(画像作成ソフト) のテクニックでないのと同じです。 PHPなどサーバサイドプログラムでもできますが, マウスオーバー → サーバへ送信 → HTMLの生成 → ブラウザへリロード となりますから,一般的ではなく遠回りです。 質問にも書かれている JavaScriptが一般的だとおもいます。 document.write で Flash を表示させるタグを書き替えるのです。 ちょっと目的が違いますが参考になるでしょうか? 「[9] FlashなどをIE仕様変更に対応させる」 http://allabout.co.jp/career/javascript/closeup/CU20031106/index.htm いや,やはりお隣のJavaScriptカテゴリの方が参考になると思います。 「質問:時間によってFLASHデータを変える」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1058862 ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1058862 また別法で, もしFlash作成ソフトをお持ちでしたら, いろいろな SWF ファイルを HTML に表示させるのではなく, 色々なシーン(フレーム)を Flash の中に作っておいて,その Flash 内のフレームを外部から操作する方法も考えられます。 しかし,これまた JavaScript です。 本家Macromedia(Adobe) 「JavaScript でムービーを制御する」 http://www.macromedia.com/jp/support/flash/ts/documents/fl0017.html 今,この回答でヒントと方向性は書いたつもりですが,ちゃんとした答えは回答していませんね。 JavaScript に詳しくないからです。 Flash では SWF内のボタンによって,そのSWF内に違う SWF を表示させるのが一般的で, 外部から SWF を変える必要性はほとんどないのでそういう研究はあまりしていません。 また,JavaScript を使うと環境対応が難しくなり,確実性が減少するのでなるべく避けます。 上記サンプルやURLを利用したりして考えてみてもわからない場合, なおかつ,このご質問に他に良い回答がつかない場合は, できたところまでの JavaScrip と HTML ソースを提示して, JavaScript カテゴリで質問しなおされるとずっと詳しい回答が得られると思いますよ。
その他の回答 (1)
- toyota_sera_1990
- ベストアンサー率33% (64/191)
ページの一部にiframeを作って、その中にswfを読み込むようにしてはいけませんか? クリックでもよいなら最も簡単だと思いますが…。
お礼
ご回答くださってありがとうございます。 iframeを使えればいいのですが、共同で作っているもので、 ページはiframeを使わない方針になっていまして。 でも、いいスクリプトをみつけましたのでなんとかなりそうです。 ありがとうございました。
お礼
何度か書き込んでいるのですが、なぜか投稿が反映されず…。 とりあえず、ご指摘の参考サイトのスクリプトを入れ込んで頑張ってみましたが、swfが切り替わらず、JavaScriptの勉強の方が先かなと思いました。 そして、いろいろなサイトをもまわっていたら、 下記のような例文を見つけました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ダイナミックにFlashムービーを入れ替えるにはdivタグで入れ替えるべきswf表示を行うタグ(object, embed)を囲んでおきます。入れ替える場合にはdocument.getElementById(divタグのid名).innerHTMLでobjectまたはembedタグごと書き出します。 サンプル <html> <head> <title>ダイナミックにFlashムービー (swf)を入れ替える</title> <script Language="JavaScript"><!-- function swapSWF(swfName) { swfTag = '<embed src="'+swfName+'" width="320" height="240">'; document.getElementById("myMovie").innerHTML = swfTag; } // --></script> </head> <body> ダイナミックにFlashムービー (swf)を入れ替えます。<br> <br> <a href="javascript:swapSWF('001.swf')">001.swfに入れ替え</a><br> <a href="javascript:swapSWF('002.swf')">002.swfに入れ替え</a><br> <br> <div id="myMovie"> <embed src="001.swf" width="320" height="240"> </div> </body> </html> 補足説明 MacOS X + Safariでも動作します。MacOS X + Internet Explorer 5.2.2ではブラウザが落ちてしまいます。MacOS X + Opera 6.05では正常に動作しません。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー これを、そっくり使ったら入れ替わりました。当たり前ですが。 ありがとうございました!