• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バナーからリンクしたページのSWFに、そのバナーに対応した外部テキストを読み込ませたい。)

バナーからリンクしたページのSWFに、外部テキストを読み込む方法は?

このQ&Aのポイント
  • 初めて質問いたします。製作環境はflash8で、バナーからリンクしたページのSWFに、バナーに対応した外部テキストを読み込ませたいです。詳細ページではmain.swfからitem_01.htmlを呼び出してitem_01.swfを表示し、テキストと画像を外部から読み込みたいと考えています。この方法で商品が増えるとサーバーに負荷がかかったり管理が大変になるため、1つのitem.swfに変数を送ってテキストと画像を表示できないかと考えています。スクリプトは初心者なので、皆さんのご教授をいただけないでしょうか?また、item_02などの変数をhtmlのタイトルに反映させる方法も知りたいです。
  • バナーからリンクしたページのSWFに外部テキストを読み込む方法を教えてください。製作環境はflash8で、メインのページにはバナーがあり、その詳細ページにリンクしています。どちらもALLフラッシュです。現在はmain.swfからgetURLでitem_01.htmlを呼んでitem_01.swfを表示させていますが、item_01.swfには外部のテキストを読み込ませたいです。インスタンス名がtxt_boxというムービークリップに、テキストをloadVariablesで読み込ませる予定です。また、画像も外部から読み込んで表示させたいですが、item_02やitem_03など他の商品もあるので、1つのitem.swfに変数を送ってテキストと画像を表示できる方法があれば教えてください。初心者なので、スクリプトについても教えていただけると嬉しいです。
  • バナーからリンクしたページのSWFに外部テキストを読み込む方法を教えてください。製作環境はflash8です。メインのページにはバナーがあり、詳細のページにリンクしています。メインのSWFからgetURLを使用して詳細ページのitem_01.htmlを呼び出しています。詳細ページではtxt_boxというムービークリップにテキストを読み込み、image_boxというムービークリップには画像を読み込んでいます。今後の商品増加や管理の負荷を考慮し、1つのitem.swfに変数を送って対応するテキストと画像を表示できないかと考えています。フラッシュのスクリプトは初心者なので、教えていただけると助かります。また、変数をhtmlのタイトルに反映させる方法も知りたいです。

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

  • ベストアンサー
  • wynnjp
  • ベストアンサー率71% (5/7)
回答No.1

javascriptとactionscriptの両方が必要になって、多少ややこしく感じますが、以下のような感じでいけるのではないかと思います。 1.getUrlで呼び出す際に、「?パラメータ=値」を追加します。  今回の例では、getURL("item.html?itemname=item01");といった感じです。 ※getURL("javascript:略");で直接javascriptを呼んだ方が良いのかもしれません。 2.呼び出されたitem.htmlの中にjavascriptを追加します。 var paramstring = window.location.search.substring(1); で、paramstringの中に「itemname=item01」が入ります。 alert(paramstring); と書いて、予想通りの値がポップアップ表示されれば、ここまではうまくいっています。 HTMLからFlashaを呼び出すのは、通常document.writeで書かれていると思いますが、ここを以下の通り書き換えます。 ※ブラウザー限定でしたら、どちらか片方だけの変更でも大丈夫です。 次の行を追加します。 document.write('<param name="FlashVars" value="' + paramstring + 'itemname=item_01" />'); swfファイルを指定しているembedタグが既に存在しているので、その中に「FlashVars=値」を追加します。 document.write('<embed FlashVars="' + paramstring + '" src="item.swf" ... />'); このあたりは今お使いのHTML次第では改変が必要かもしれませんね。 3.item.swfの中で下記のように書いてみてください。 trace(_root.itemname); trace窓に「item01」と表示されれば2まで成功、「undefined」と出たら2の見直しです。 (多分2が一番取っつきにくい部分です・・・) ここまでうまくいけば、あとは簡単ですね。  this.loadVariables("../image/txt/item_01.txt"); のように固定値で書いている部分を、以下のように変数で置き換えていけば完了です。  this.loadVariables("../image/txt/" + _root.itemname + ".txt"); なお、ページのタイトルを書き換えるのは以下で行けると思います。 ※substringで文字列を切っているのは、「=」より後ろの文字を取得するためです。 document.title = paramstring.substring(9);

a-kira1966
質問者

お礼

お礼が遅くなって申し訳ありません。 2.の、ポップアップ表示までは出来たのですがそこから先はいまだ出来ておりません。 いろいろ試したのですが、HTMLからswfへの受け渡しがうまくいっていないようです。 HTMLからの呼び出しも、今まではDreamweaver 8にまかせっきりでしたので 構造的なことや意味すらよく分かっておりません。 もう少し勉強してから考えたいと思います。 有難う御座いました。

a-kira1966
質問者

補足

早速のご回答ありがとうございます。 ただいま格闘中です。 いくつか補足させて頂きます。 main.swfからの呼び出し方は getURL("javascript:void(window.open('item_01.html','item_01','width=・・・・'))"); のように行っています。 HTMLはXHTML 1.0 Transitionalです。 最後の document.title = paramstring.substring(9); はどこに書けばよいのでしょうか? 宜しくお願いいたします。

その他の回答 (1)

  • wynnjp
  • ベストアンサー率71% (5/7)
回答No.2

補足はできないようなので(見落としていたらすみません)、改めて補足分の回答です。 getURL("javascript:void(window.open('item_01.html','item_01','width= の部分を getURL("javascript:void(window.open('item_01.html?itemname=item_01','item_01','width= のようにhtml名に「?」以下を追加してください。 呼び出されるitem_01.htmlのサンプルを下記に記します。 <html> <head>   <title>aaaa</title> </head> <script language="JavaScript">   var paramstring = window.location.search.substring(1);   document.title=paramstring.substring(9); </script> <body> </body> </html> タイトルが「aaa」ではなく、「item_01」になったと思います。 ※前回もですが、見やすさのために全角文字を入れています。そのままだとエラーになりますのでご注意下さい。

a-kira1966
質問者

お礼

お礼が遅くなり大変申し訳ありません。 問題は全て解決いたしました。ありがとうございました。 Dreamweaver 8でswfを貼り付けるとき、AC_RunActiveContent.jsというものを呼び出して表示するような仕組みになっています。 それを残して出来ないか格闘しておりましたが現時点の私の力では無理でした。 それで、AC_RunActiveContent.jsをはずして教えて頂いたようにやってみたところ、全て思った通り出来ました。 本当に有難うございました。

関連するQ&A

専門家に質問してみよう