• 締切済み

JavaScriptで起動時にFlashへ引数を渡す方法 [ActionScript3.0]

Flashで、動的に外部ファイルから画像を読み込むスライドショーを作りました。 これをHTMLに埋め込む際にわからない点がありますので、ご意見おねがいします。 index.htmlに、 ・写真集1 ・写真集2 ・写真集3 という様にリンクがあり、クリックすることで別ウィンドウslideshow.htmlが開きます。 このとき、クリックしたリンクによってslideShow.html?id=1というように固有のid番号がURLに付加され、別ウィンドウに渡されます。 slideshow.htmlにはスライドショーのFlashが埋め込まれており、URLに付加されたid番号を取得して、どの写真をスライドショーにするかを決定します。 URLに付加されたid番号をJavaScriptで取得することは出来ました。(document.writeで表示できます) しかし、これをFlashに渡す方法がよくわかりません。 <param name='FlashVars' value ='id=1' /> という様に、静的にFlashに渡すことはできるのですが、このidの部分を動的に取得して渡すのに、スクリプトでどのように記述すればいいのかが分からず悩んでいます。 よろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

サーチの解析が複数のパラメータを想定しているようなのに、内容をチェックせずに決めうちみたいだし… HTMLのほうもembedとparamでダブっているのでは? (Flashは良く知らないけど、片方でよいのではないでしょうか?) とりあえず、サーチ部は「id=○○」がくるものと仮定してよくて、かつ、パラメータにidをふってよいのなら、  document.getElementById('id_num').value = location.search.substr(1); の1行でもいけると思うけど… (ダブりはとるという仮定です)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

DOMで探してvalueを設定し直せばよろしいかと… 代入するパラメータの値がnumberにあるとすれば、こんな感じ? var e = document.getElementsByTagName('PARAM'), el; for (var i=0; i<e.length; i++) { if (e[i].name=='FlashVars') el = e[i]; break; } if (el) el.value = 'id' + number;

goo_boo
質問者

補足

ありがとうございます。 いただいた回答とは少し違うのですが、自分なりに以下のようにphotoShow.htmlを作成しました。 firefox3.0.10では正しく動作するのですが、IE7では値を渡せていないようです。 当初の質問とは多少ずれてきますが、ご意見いただければありがたいです。JavaScriptは基礎から勉強していないため、文法等があまり分からず苦戦しております。 よろしくお願いします。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>photo garally</title> <SCRIPT LANGUAGE="JavaScript"> <!-- // id番号の取得 var QS = new Array; if (location.search.length > 1) { var m_Array = location.search.substr(1).split("&"); for (idx in m_Array) { QS.push(m_Array[idx].split("=")); } } function setID(){ var targetElement = document.getElementById('id_num'); targetElement.setAttribute("value", "id=" + QS[0][1]); targetElement = document.getElementById('photoShow_EMBED'); targetElement.setAttribute("FlashVars", "id=" + QS[0][1]); } //--> </SCRIPT> </head> <body bgcolor="white"> <center> <object id="photoShow" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="950" height="700" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <param name="movie" value="photoShow.swf" /> <param name="loop" value="false" /> <param name="menu" value="false" /> <param name="quality" value="high" /> <param name='FlashVars' id="id_num" value ='id=-1' /> <embed id="photoShow_EMBED" src="photoShow.swf" FlashVars='id=-1' loop="false" menu="false" quality="high" bgcolor="#333333" width="950" height="700" name="photoShow" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_jp" /> <script>setID();</script> </object> </center> </body> </html>

関連するQ&A

  • FlashのActionScriptでjavascript?

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

    • ベストアンサー
    • Flash
  • ホームページビルダーへflashファイルを挿入する方法について

    ホームページ作成初心者です。 「photo flash maker pro」というソフトで3Dのスライドショーを作り、「ホームページ・ビルダーV9」でホームページにのせようと、Flashファイルの挿入をしたところ、プレビュー画面で見ることが出来ません。 photo flash maker製品ページ http://www.anvsoft.jp/embed-homepage-slideshow.html に記載のある 「<object> と </object> の中のソースコードを slideshow.html にコピーしてください。」とはどういう意味なのでしょうか? この工程をしていないのが原因なのかもしれませんが、やり方が分かりません。 初心者にも分かるように教えていただけませんでしょうか?

  • Flashのスキップボタンの作成方法について。

    Flashのスキップボタンの作成方法について。 Flashのスキップボタンの作成方法について。 Flash CS4(AS2.0)でスライドショーを作成してHPでアップしようと思っています。 スライドショーのFlashは完成してます。 フレーム数は670です。10枚ほどの写真で、最後の写真までいくと自動的に一番初めから流れるようになっています。そこで、以下参照URLのように、次の写真へとぶようにスキップボタンを設定するには、どのようなActionScriptを書けばよいのでしょうか?(私が作成したものは自動的に始めの画面に戻るので、レプレイボタンは不要です。) とりあえず、ムービークリップでSKIPボタンを作って、新規レイヤーの1フレーム目に配置してます。 Flashは始めたばかりなので、お手数をお掛け致しますが、詳しくお願いします。 参照サイト:http://h50146.www5.hp.com/products/desktops/personal/m9380/

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

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

  • FLASH内リンクにURLを与える方法

    http://katamari.co.jp/ ↑このサイトで実現している、flash内部でリンクをクリックすると、ブラウザのURLも書き換えられ、そのURLにアクセスするとflash内の当該ページにリンクするというのをやりたいのですが、これはどうやっているのでしょうか?

    • ベストアンサー
    • Flash
  • javascriptでFLASHのActionScriptを制御できるのでしょうか?

    いつもお世話になっております。 表題の通り、MacromediaのFLASH MXでWebのデザインをしております あるぺーじでアクションスクリプトを利用し サウンドをループさせて再生しております、 (このページをA.htmとします) Aのページにリンク(javascriptのopen.windowで)貼っていて 新しいウィンドウ(B.htm)が開いたら(アクティブになったら)Aのループサウンドを停止させ、Bが閉じられて再びAがアクティブになったらサウンドを再生させることは出来るのでしょうか? 現在のアクションスクリプトは下記の通りです --------フレーム1のアクション------------------- ongaku = new Sound(); ongaku.attachSound("voice"); ongaku,start(0,999); ------------------------------------------------- また、ボタンがクリックされたら停止するようにしていますので そのボタンアクションは以下の通りです ------------ボタンアクション--------------------- on (release) { if (dengen <> "ON"){ dengen = "ON"; ongaku.start(0,999); } else { dengen = "OFF"; ongaku.stop(); } } ------------------------------------------------ ボタンは、ダイナミックテキストの値を参照して サウンドが再生されてたり止まったりするようにしました。 フレームでの再生によるムービーなら javascriptでストップさせたりプレイさせたり出来るのは知っているのですが。 javascriptでactionScriptを制御できるのでしょうか? ご多忙中とは存じますが、宜しくお願いいたします。

  • 写真スライドショーソフト 「DVD slideshow GUI」の使い方について。

    写真スライドショーソフト 「DVD slideshow GUI」の使い方が よくわかりません。 フリーソフトということで、ダウンロードしたのですが、 英語なので、さっぱり意味がわからなくて。 お暇な方は、色々と教えてくれると助かります。 友人の結婚式で、スライドショーを作る予定なので・・・ こんな初心者ですが、宜しくお願いします。

  • html内にスライドショーを複数設置

    こんにちは、質問があります。 http://allabout.co.jp/gm/gc/417216/3/ ↑のサイトさんに載っているコードを参考に、スライドショーをhtml内に書きました。html内にスライドショーを複数設置をしたいので、#slideshow の部分を#slideshow2や#slideshow3にしたりしたのですが、スライドショーが#slideshow3の部分しか動きません。全てのスライドショーを同時に動かすにはどうしたらいいのでしょうか?当方初心者なので分からないのです。どなたか教えていただけるとうれしいです。 以下が書いたコードです。 <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript"> function slideSwitch() { var $active = $('#slideshow img.active'); var $active = $('#slideshow2 img.active'); var $active = $('#slideshow3 img.active'); if ( $active.length == 0 ) $active = $('#slideshow,#slideshow2,#slideshow3 img:last'); var $next = $active.next().length ? $active.next() : $('#slideshow,#slideshow2,#slideshow3 img:first'); $active.addClass('last-active'); $next.css({opacity: 0.0}) .addClass('active') .animate({opacity: 1.0}, 1000, function() { $active.removeClass('active last-active'); }); } $(function() { setInterval( "slideSwitch()", 2000 ); }); </script> <p id="slideshow"> <img src="img/slide1.jpg" alt="" /> <img src="img/slide2.jpg" alt=""/> <img src="img/slide3.jpg" class="active" /> </p> <p id="slideshow2"> <img src="img/slide4.jpg" alt="" /> <img src="img/slide5.jpg" alt=""/> <img src="img/slide6.jpg" class="active" /></p> <p id="slideshow3"> <img src="img/slide7.jpg" alt="" /> <img src="img/slide8.jpg" alt=""/> <img src="img/slide9.jpg" class="active" /></p> どなたか回答よろしくお願いいたします。

  • FLASHのブログ貼付けについて教えて下さい。

    自分で撮影した写真をブログに載せたいので、フリーソフトを使ってみましたが、どれも失敗してしまいました。 ・「Powerbullet」は、ZIPファイルをDLして、SetupPowerbullet135.exeを開いてセットアップしましたが、最後のコメントが、通常のと違うコメントで、出来上がったショートカットをクリックするとエラーになります。 諦めて 「flash slideshow maker」を使って、SWFファイルを自分のファイルへ保存して、スライドショーは見れるようになりましたが、 アップロードするために、IDを登録してアップロードしようとwww.skyalbum.com を開くもインターネットでページが表示されないので、アップロードできませんでした。 ・どこかブログ貼り付けに適した所にアップロードをすれば出来ますでしょうか??? 頑張ってみたものの、あと一息で断念しそうです・・・ 申し訳ありませんが、Flashについて教えてください。

  • 写真画像でスライドショーを作成したい

    HPで、複数の写真画像でスライドショーを作成したものを作りたい。 当初、ソフトはDWとFlash MX2004あります。 はじめ、MX2004でフラッシュでスライドショーを作るものだと 思っていましたが、作り方がどんなフラッシュの本を見ても載っていないです。 もしかしたら、複数の写真画像を自動的にエフェクトで 切り替えるものを作成するのはフラッシュではなくて 別のソフトを使うのか?という可能性を考えましたが どのように作ればいいのか全く分かりません。 どんな本、どんなソフトを使えばいいのでしょうか、 教えて頂けませんか?

専門家に質問してみよう