• ベストアンサー

JavaScript + FLASH 【overLayFlash】

http://f-site.org/articles/2006/09/09042615.html 上記ページで紹介されている、むらけんさん制作のoverLayFlash.jsを元に、下記のようなカスタマイズを行いたいのですが、Javascriptがわからず困っています。 (1)onloadを使用し、ページ読み込み時に実行したい (2)FLASH終了後、今度はリンクにより再度表示したい(Replayみたいな感じで・・・。) というカスタマイズを行いたいのですが、(2)の時に、リンクをクリックすると、swfへ飛んでしまい、表示がおかしくなってしまいます。 (2)の時にもレイヤーを使用し、HTMLの上に被せたいのですが、 どうカスタマイズすればいいかわかりません。 どなたかjavascriptに精通してます方ご教授願えませんでしょうか。 苦肉の策として、swfファイル側のFLASHの表示を消すスクリプト、 onMouseDown=function(){ getURL("javascript:void(hideFlash());"); } に、getURL("index.html");を記述すれば、問題ないのですが、 マウスダウン時にリロードされてしまうので、格好が悪い気がします。 うまいことjavascript側で解決できませんでしょうか。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

overLayFlash.jsは、<head>内で定義しているのですよね? でしたら、<body>のonloadは使用してはいけません。 (overLayFlash.jsが未熟な為そのような仕様だと思ってください。) ページのonloadイベントを追加したい場合の対応としては、verLayFlash.jsを改善してしまう。 ってのもあるけど、面倒でしょうし、以下の方法で大丈夫だと思います。 <head>内等で <script type="text/javascript"> function onloadEvent() { /* onloadで行いたい処理。今回だと(1)の実行処理 */ } addLoadEvent(onloadEvent); </script> #「onloadEvent」って関数名は適当に付けたので好きに変更してください。「addLoadEvent」は「verLayFlash.js」にある関数なので固定。

sunwarship
質問者

お礼

回答ありがとうございました! ご指摘の通り<body>のonloadを使用していました。 Head間に記述しましたところ、上手くいきました。 感謝です(≧∇≦) ありがとうございます。

その他の回答 (1)

  • masaota56
  • ベストアンサー率41% (58/139)
回答No.1

初期化をinitoverLayFlash()で行っているようですね。 この関数でrel=overLayFlashのアンカーを取得して、onclickを設定しています。 initoverLayFlashの中を見てみると、 anchor.onclick = function () { showFlash(this); return false; } となっています。これをonloadに応用すれば(1)はいけると思います。 (2)に関しても、hideFlash()で同じようにすればおそらく大丈夫かと。

sunwarship
質問者

お礼

回答ありがとうございました! 無事解決することができました! javascriptも勉強しようと思います。 ありがとうございました。

sunwarship
質問者

補足

さっそくのご回答ありがとうございます。 参考にさせていただき、色々と試してみました。 (1)はクリアできたのですが、やはり(2)でつまづいてしまいます。 onloadで表示されたFLASH終了後(クリックで終了)、リンクで再度表示をしようとすると、やはりswfに直接遷移してしまいます。 これはクリック時に、rel=overLayFlashが渡っていないのでしょうか。 initoverLayFlashで初期化を行っているとのことでしたので、initoverLayFlash Function部分に試しでwindow.location.reload();を記述したところ、リロードされてしまいますが、上手くいきます。 =onloadとクリック両方でということになると、初期化がうまくいかないのでしょうか。 私ですがjavascriptは初心者で記述の仕方がわかりません。 大変恐縮ですが、詳しく教えてはもらえませんでしょうか。 どうぞよろしくお願いします。

関連するQ&A

  • FlashからJavaScriptを呼び出す際のエラーについて

    皆様こんにちは。 WEB作成初心者で常識的な質問でしたら大変申し訳ございませんが、調べてみてもどうしても解決できなかった為ご質問させて頂きました。どうかご教授お願いいたします。 タイトルのとおり、Flash側からjavascriptをコールしたいのですが、 swf側 on(press){ getURL("javascript: a()"); } html側 function a(){ alert('alert!'); } のような例の場合、htmlファイルとswfファイルが同じディレクトリ内にある場合は警告ウィンドウがきちんと表示されるのですが、swfを別サーバーに置いてそれを呼び出しているhtmlの場合は警告ウィンドウが表示されません。 私がgetURLの仕様を知らないだけなのかもしれませんが、別サーバーにあるswfファイルをロードしているようなページの場合、どのようにすれば呼び出し元htmlを表示しているウィンドウに対してjavascriptをコールする事が出来ますでしょうか? お手数をおかけしますがご教授頂ければ幸いです。

    • ベストアンサー
    • Flash
  • FlashとJavaScriptの連携について。

    HTML内に設置したFlash(SWFファイル)のボタンを押すと、別ウインドウのHTMLページが開く方法について。 現在ホームページを制作していますが、FlashとHTML内のJavaScriptとの連携が上手く出来ないので質問します。 問題のスクリプト・タグを記載します。 -----以下、HTML(index.html)内に記述したJavaScript----- <script type="text/javascript"> function winopen(top.html,1024,768{window.open(top.html,"name","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0" , Width=" + 1024 + ",Height=" + 768); </script> -----ここまで----- -----以下、Flash(SWFファイル)のボタンに対して記述したActionScript----- on (release) { getURL("javascript:winopen("top.html",1024,768);", "_blank"); } -----ここまで----- この状態で、HTM内にobjectタグを用いて設置したFlash(SWFファイル)のボタンが上手く動作してくれません。 希望する動作としては「index.htmlに設置されたFlash(SWFファイル)のボタンを押す」→「別ウインドウ(1024×768のサイズ、各ツールバー等非表示、スクロールバーのみ許可)が立ち上がりtop.htmlが表示される」という流れです。 ※移動先のtop.htmlには、特にJavaScriptの記述はありません。また、top.htmlはHTML内にFlash(SWFファイル)を設置した見た目だけフルFlashのページになります。 ご不足の記述等があれば、すぐに補足追加させて頂きます。 ご回答、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • FLASHとJavaScriptの連携について

    FLASHを使用してウェブサイトを作成しています。 Windowsアップデートにより、Flashのまわりに変な枠線が出るようになりましたが、こちらのみなさんのおかげで無事解決(JavaScript使用)しました。 新たな問題が。。。 現在外部javascript(***.js)を本文内で呼び出すというような形態をとっております。(以下参照)   document.write('<EMBED src="menu.swf" ...m/go/getflashplayer"></EMBED>'); このような状態でブラウザ(IE)のセキュリティが高い状態だと何も出ません。 FLASHのみの時は、中身は消えてもFlashがあった場所だけは真っ白になり「あー何かあるな」と観る人に感じられたのですが。 javascriptがオフの時はメッセージを出そうと、ページのトップの一番上に、 <noscript>メッセージ</noscript> と付け加えました。 これでjavascriptがオフの時はメッセージが出るのですが、ブラウザのセキュリティの設定が高で、 [レベルのカスタマイズ]-[スクリプト]-[アクティブスクリプト]を「有効にする」にすると、上記のメッセージは表示されませんが、Flashも表示されないままです。 メニューなどがFlashで作成してあるのですが、それがそのまま上に詰まってしまって、何もなかったかのようになってしまいます。 これはどうしたらいいのでしょうか? Flashだけ、JavaScriptだけならなんとかなりそうなんですが、これらを組み合わせた時はどうしたらいいのでしょうか? もしくは、[ActiveXコントロールとプラグイン]-[ActiveXコントロールとプラグインの実行]で「有効にする」を選択するとFlashが表示されましが、 これをユーザーに「有効にする」にしてください、というメッセージを表示するようにしたらよいのでしょうか? この場合はどのような方法がありますか?

  • Javascriptで起動するときの音の消失

    いつも、このページにはお世話になっています。 FLASHファイルで、別のFLASHファイルをJavascriptで呼び出すときに、音が鳴りません。 ファイル構成は以下のようになってます。 index.html file1.swf index2.html file2.swf 要するにindex.htmlにある、file1.swfから index2.htmlを呼びます。起動は出来ます。しかし、 index2.htmlにあるfile2.swfの音が途中で 切れてしまいます。 index.htmlの呼び出し側をAタグなどをして Javascriptを呼んだ場合は音が鳴ります。 これは何故なんでしょうか? すいません。困っていますよろしくお願いします。 コード↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ [file1.swf] _root.getURL("JavaScript:void(subOpenWin())"); [index.html] <script language='JavaScript'> <!-- function subOpenWin(){ var reSub = subOpen('index2.html','newOpen',0,0,0,0,1,0,1024,680,0,0); return reSub; } //--> </script>

    • ベストアンサー
    • Flash
  • HTMLからJavaScript経由で変数をFlashに渡す方法について

    こんにちわ。flashについてお聞きしたいことがあります。HTMLページから、JavaScript経由で、HTMLページに表示しているflashに変数を渡す方法を教えていただきませんでしょうか。 例えば、、、、 ●準備 (1)page1.htmlとpage2.htmlとpage3.htmlを用意します。 ※各htmlファイルは、コンテンツページをイメージします。 (2)各htmlページに、flashで作成したメニュー(menu.swf)を挿入します。 ※すべて同じmenu.swfを使用する。 ●したいこと 各htmlページの頭に、JavaScriptで変数(またはファイル名の読み込み)をセットして、その変数をmenu.swfで読み込み、action Scriptで、各ページごとにflash(menu.swf)の見せ方を制御したい。 以上ですが、説明が下手ですみません。 わかる方がいらっしゃいましたら、ご伝授の程、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash Playerでのリンク

    Flash MX2004を使用してます。 同じパソコン上で、 a.swfとb.swfというFlashファイルを作って、 a.flaの「ボタン」のアクションから on (release) { getURL ("b.swf", "_self"); } と入力してパブリッシュ後、a.swfから実行すると IE(ブラウザ)が立ち上がってbのリンクへ飛びますが、これをFlash Playerのみを使って(ブラウザを使わずに)リンクさせることはできますか。

  • FLASH5とジャバスクリプト?

    FLASH5を使って、動くボタンを作成しています。 それで「getURL」を使うと、リンク先にとびますよね。 でも、そのボタンをひとつ押すと、3つのフレームが変わるようにしたいのです。 以前はそれをJavaScriptと通常のgif形式のボタンで行っていたのですが、FLASHと組み合わせて使ってもできるものなのでしょうか? 「getURL」以外を使えばできるようになりますか? FLASHを使い始めて1週間もたっていないので、まだわからないことだらけなんです・・・。 現在使用中のブラウザはIE5ですが、ネスケなどでも正常に表示されますか?

  • FlashのActionScriptでjavascript?

    質問するカテゴリーがここであっているのかよくわかりませんが、よろしくお願いします。 Flashの短い動きがあった後、一部をクリックすると新しいウィンドウが開くようになっています。 今回、そのリンク先を変えてくれとの依頼がきました。 そのクリックする部分のActionScriptをみたところ、 on (release){ getUrl("javascript:OpenNewWindow(3)"); } となっていました。 これはジャバスクリプトを読んでいるということなのでしょうか? もしそうなら、そのジャバスクリプト自体にはどうすればたどりつけますか?

    • ベストアンサー
    • Flash
  • flashとjavascriptとhtmlの連携で、一瞬白い画面が!

    自作でサイトを作っているのですが、flashを組み込んだところ、「このコントロールをアクティブ化して…」と表示されたため、html内にflashでパブリッシュしたものを書かず、外部のjsファイルから呼び出すというふうにしました。 htmlの<body>タグ内に <script type="text/JavaScript" src="js_file/top.js"></script> と記述して、top.jsの document.open(); document.writeln('<embed src="fla_swf/Top_Flash1.swf" width="800" height="565" type="application/x-shockwave-flash"/>'); document.close(); というのを呼び出して、読み込んでいます。 そこで、今回困っている内容なのですが、リンクをクリックして、同じサイト内にページ移動する際に、一瞬flashの部分が真っ白になってしまいます。また、「戻る」のボタンを押して、ひとつ前のページに戻るときにも、一瞬真っ白になってしまいます。 この一瞬真っ白になる現象はどのようにすれば、修正できるのでしょうか。よろしくお願い致します。 現物があれば、分かりやすいと思いますので、サイトのリンクを載せておきます。 http://yamauti.com

  • Flashで表示されたサムネイルをJavaScriptで拡大表示したい

    HTMLはある程度わかるようになってきただけのJavaScript初心者なのですが、HP制作の途中、Flashを使っていて分からないことが出てきました。 教えていただけるとうれしいです。 Flashのメニューを使っていて、そのメニューはリンク先がカスタマイズ可能です。 リンク先の指定は、テキストファイルの中に記述されている、 「 &url5=http://www.xxxxx.xxx.xx/& 」という場所で指定することになっています。 フォトギャラリーの写真のサムネイルをメニュー項目にして、Flashメニューでサムネイル選択したいと思っているのですが、そのサムネイルをクリックしたときに、同じページの別のテーブルに、そのサムネイルの大きな画像を表示させるということをしたいのですが、できるのでしょうか。 もしできるのなら、教えてほしいです。 Flashメニューでないサムネイルをクリックして拡大画像を表示ということはJavaScriptでできるのですが、Flashメニューで、となると不可能なのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう