- ベストアンサー
NEXTとBACKアイコン
- 次のページと前のページに移動するためのNext-iconとBack-iconボタンを50枚のhtmlページに追加しました。
- 各ページにgetURLスクリプトを書くことなく、Nextボタンをクリックすると現在のページ番号に1を加えて次のページに移動し、Backボタンをクリックすると現在のページ番号から1を引いて前のページに移動します。
- さらに、p01やp50の場合にはBackボタンやNextボタンをクリックしてもエラーが発生しないようになっています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
全体的にわかるようで, 細部がわからないご質問のように思います。 私の勝手な解釈で回答させていただきます。 > getURL(" /p16.html","_top") _top ということはフレームを使用したHTMLに SWF を貼り付けているということでしょうか? ...しかし, それだと質問内容と食い違うような気がしますし??? 勝手にHTMLにはフレームを使用せず, getURL("./p16.html") のように書くものとして回答します。 > 50枚のhtmlページのあるデータに > 各々「Next-icon」「Back-icon」のボタンを付けました。 これもいまひとつ意味がわかりませんが, 「Next-icon」「Back-icon」というボタンが入ったSWFを50個用意し, 50枚の各htmlページにそれぞれの SWF を貼り付けた。 と解釈します。 そして, 「Next-icon」「Back-icon」というボタンが入ったSWFを50個用意するのではなく, 「Next-icon」「Back-icon」というボタンが入ったSWFを1つだけ用意し, 50枚の各htmlページにその1つの SWF を貼り付けたい。 というご質問だと解釈しますよ。 ================= HTML から FlashVars で SWF にパラメータを送れば, 「Next-icon」「Back-icon」というボタンが入ったSWFを1つだけ用意した場合でも, 50枚のhtmlによって,それぞれ違うURLに getURL することができます。 「アプリケーションでの FlashVars の使用」 http://livedocs.adobe.com/flash/8_jp/main/00001206.html 「Next-icon」「Back-icon」というボタンが入ったSWFを, 「○○.swf」とした場合の各ページのタグ例。 「p01.html」のタグ例 ------------------------------------- <object …略…> …略… <param name="FlashVars" value="next=./p02.html"> …略… <embed src="○○.swf" FlashVars="next=./p02.html" …略… /> </object> ------------------------------------- 「p15.html」のタグ例 ------------------------------------- <object …略…> …略… <param name="FlashVars" value="back=./p14.html&next=./p16.html"> …略… <embed src="○○.swf" FlashVars="back=./p14.html&next=./p16.html" …略… /> </object> ------------------------------------- 「p50.html」のタグ例 ------------------------------------- <object …略…> …略… <param name="FlashVars" value="back=./p49.html"> …略… <embed src="○○.swf" FlashVars="back=./p49.html" …略… /> </object> ------------------------------------- 「Next-icon」「Back-icon」というボタンが入ったSWFの 「Back-icon」ボタンに書くスクリプト ------------------- on (release) { if (_root.back != undefined) { getURL(_root.back); } } ------------------- 「Next-icon」「Back-icon」というボタンが入ったSWFの 「Next-icon」ボタンに書くスクリプト ------------------- on (release) { if (_root.next != undefined) { getURL(_root.next); } } ------------------- if (_root.back != undefined) は直訳すると, 「もし _root に back という変数が未定義でなければ」 という意味になります。 つまり言い換えると, 「もし _root に back という変数が定義されていれば」 ということになります。 ================== ActionScript では, MovieClipクラスの _url プロパティを参照することによって, SWF自体の URL 自体は取得できます。 しかし, SWFが貼りついている HTML の URL は取得できません。 つまり, 「私(SWF)は現在『p15.html』に貼りついて表示されている」 ということは Flash からはわからないわけです。 したがって, HTML 側から SWF に, 「私(HTML)は『p15.html』だよ。」 という情報を送信して Flash 内で前や次の URL を算出するようにプログラムするか, 「私(HTML)の前は『p14.html』で次は『p16.html』だよ。」 というような情報を送信して,Flash内でそのように行動させるようにするような方法を使うしかありません。 もっとも, 「私(HTML)は『p15.html』だよ。」 や, 「私(HTML)の前は『p14.html』で次は『p16.html』だよ。」 という情報を書くのが面倒臭い場合は, JavaScriptなどで HTML の URL を取得して, 自動的にそのようなタグを書くようにすれば楽にできるとは思います。 また JavaScript でなくても PHP などなどでもできると思います。 しかしそれは Flash(ActionScript) のテリトリーではありません。 ================= HTMLにフレームを使って, メニューフレームに SWF, コンテンツフレームに 50個のHTML を表示させるような場合は, 常に 1つの SWF がリロードされることなく存在することができるので, ActionScript のみの 足し算や引き算 でできるかもしれません。 (アクセスを最初にするページが必ず1つに決まっている場合限定の話ですが。)
お礼
ご親切にありがとうございました。 対応が大変遅くなりましたが、ご連絡をヒントに解決いたしました。 ありがとうございました。