- ベストアンサー
HTMリンクから、別フレームFLASHのコンテンツを動かす方法
- 左フレームにFLASHのメニューを作成し、右フレームのHTMと同じリンクをクリックした際に、左のFLASHを動かすことは可能でしょうか?タグなどを使用して、制御する方法について教えてください。
- 似たような質問がありましたが、一刀両断されていました。もしできない場合、打開策がありますか?右のリンクを押した後に、右と左を再読み込みして、メニュー用のFLASHを再度読み込む方法以外に、他の方法があれば教えてください。
- 詳細な説明や補足が必要な点があれば、素早く対応いたしますのでお知らせください。なにか良い方法があれば、ぜひ教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。できましたか? #1の一部訂正と,補足です。 >> あと,参考URLで言うところの, >> function ChangeScene() に >> 右フレームを変えるスクリプトを追加すれば出来上がりです。 と書きましたが,別に追加しなくても良かったです。 http://www.game3rd.com/flash/scripter/script/sam2.htm のJavaScriptはそのまま拝借して,後はFlashでできます。 ファイルの階層構造が下のようなとき, ┌index.html (フレームTOP) ├menu.html (左フレームのメニュー) ├menu.swf (メニューフレームのSWF) ├1.html (右に表示される最初のページ(frame name="main")) ├2.html └3.html 「menu.html」は↓このようになります。 -------------------------------------- <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <TITLE>menu</TITLE> <script language="JavaScript" type="text/javascript"> <!-- scene_table=new Array(3); scene_table[0]=0; scene_table[1]=1; scene_table[2]=2; function ChangeScene(num) { whichObj("main").GotoFrame(scene_table[num]); } function whichObj(objName) { if (navigator.appName=="Netscape") { return window.document[objName]; } else { return window[objName]; } } //--> </script> </HEAD> <BODY> <!-- URL's used in the movie--> <!-- ココにSWFを貼り付けるタグが来ます --> <!-- Objectタグ内のidを id="main"にするのをお忘れなく --> <p><a href="JavaScript:ChangeScene(0)" language="JavaScript">ページ1</a></p> <p><a href="JavaScript:ChangeScene(1)" language="JavaScript">ページ2</a></p> <p><a href="JavaScript:ChangeScene(2)" language="JavaScript">ページ3</a></p> </BODY> </HTML> ---------------------------------- 1フレームのボタンには ------------------------ on (release) { gotoAndStop(1); } ------------------------ ↑これだけ。 そのかわり1フレームのフレームアクションは ------------------------ stop(); getURL("1.html", "main"); ------------------------ 2フレームのボタンには ------------------------ on (release) { gotoAndStop(2); } ------------------------ 2フレームのフレームアクションは ------------------------ stop(); getURL("2.html", "main"); ------------------------ … … … としていけば良いです。 getURLをボタンではなく,フレームに書いておいて, そのgetURLをFlashのボタンからも,JavaScriptからも使うという方法です。 JavaScriptがあまり好きではない人の発想だとバレバレですね。
その他の回答 (1)
ダメなことは全くないですよ。 ただ,面倒なのと,JavaScriptを有効にしていないブラウザでは使うことができないことと ブラウザによっては動作しない可能性があるの問題かもしれません。 一番下の参考URL↓にそのようなサンプルが紹介されています。 SWFを適当に自作して,サンプルページのソースを参考にしてみましたらちゃんと動作しました。 ページのソースに詳細説明が入っています。 SWFファイル側は特に何もしなくて良いです。 適当にフレームを作って,適当なフレームにstop();とかを書いておけば良いだけです。 HTML側のUavaScriptに scene_table[0]=0; scene_table[1]=30; scene_table[2]=66; などと行きたいフレームを設定しておいて,functionでFlashを目的のフレームにジャンプさせるというものです。 ですから,Flashの 「FLASHの押したリンクメニュー(現在地)に赤い点が付く」マークはフレームごとに変えると良いと思います。 つまり,Flash側の ○○.html を表示させたいボタンには, --------------------------------- on (release) { getURL("○○.html", "_main"); gotoAndStop(△△); } --------------------------------- みたいな感じで,△△フレームに,「リンクメニュー(現在地)に赤い点」を付ければいいわけです。 ついでに,△△フレームではこのボタンを無効にしておくと,なお良いですね。 あと,参考URLで言うところの, function ChangeScene() に右フレームを変えるスクリプトを追加すれば出来上がりです。 ===================================== それと,ご質問に対する回答と言うより, 質問されている内容の根本に関する話ですが, Flashも工夫次第で読み上げが可能です。 アクセシビリティに配慮したFlashコンテンツ 富士通 http://jp.fujitsu.com/accessibility/casestudy/pdpflash/ Macromedia Flash(TM) ムービーの読み上げについて http://www-6.ibm.com/jp/accessibility/soft/jaws45-flash/jaws45-flash.html 良かったらこちら↑の方も参考にしてみてください。 アクセシビリティは大切なことですよね。私もいろいろ研究して行きたいと思っているところです。
お礼
ささくんさん、ありがとうございます!! うわあ、まさか回答いただけるとは思わなかったので吃驚です。本当に感謝です。 JAVAを使えば可能なのですね! こんなに丁寧に説明してくださって…ありがとうございます。大感謝です! さっそくできるか取りかかってみようと思います! 取り急ぎお礼までに…。 そして、Flashも読み上げソフトで読むことができるのですね! これはすごく勉強になりました。質問をして良かったです。 アクセシビリティはほんと大切ですね。自分が見えないと思うと、先方の意図あるなしに関わらず、どうしても懲りたいところですね。 もっと広い視野を持たなければ…と思いました! ありがとうございます! また結果報告いたします。
お礼
うまくクリアできました! 本当にありがとうございます。視野が広がったことも良いことだし、技術と自信がついたということが一番です。 これからもまたお目にかかることがあるとは思いますが、またよろしくおねがいします。 今回はほんとうにありがとうございました!
補足
こちらも、ご丁寧にありがとうございます。 大変助かります! 追って…取りかかり次第、またお礼させていただきますね!(^▽^)