• 締切済み

Flash-XMLで読み込んだ各childNodesにリンクを付ける方法

初めて質問致します。 類似した質問が過去にあり、参照しましたが解決に至らなかったので、 どうぞよろしくお願いいたします。 FLASHにXMLから画像を読み込み、その画像にXMLから読み込んだリンクを設定したいと思っています。 XMLの記述は ------------------------------------------------------ <GROUP> <SRC>001.jpg</SRC> <URL>001.html</URL> </GROUP> ------------------------------------------------------ となっています。この<GROUP></GROUP>ノードを複数回繰り返します。 FLASHでは ------------------------------------------------------ this["target_mc"+i].target.loadMovie(_root.SRC);/*画像を表示*/ this["target_mc"+i].link_btn.onRelease = function() { getURL(_root.URL);};/*リンクを設定*/ } ------------------------------------------------------ のように記述しています。 問題は、 画像部分(_root.SRC)は、XMLに記述してある、ノードの数の分だけ、きちんと画像が表示されるのに対して、 リンクは、XMLに記述してある、最後のノードのリンクが全ての画像に適用されてしまうことです。 もう少し詳しく説明します。 XMLに<GROUP>ノードが3つあり、それぞれ ■画像パス:001.jpg リンク:001.url ■画像パス:002.jpg リンク:002.url ■画像パス:003.jpg リンク:003.url と設定してあるとすると、 FLASHで出力した場合 ■表示画像:001.jpg リンク:003.url ■表示画像:002.jpg リンク:003.url ■表示画像:003.jpg リンク:003.url というように、画像は001~003.jpgが正常に表示されるのに対して、 リンクは全て003.urlに統一されてしまうのです。 画像が<GROUP>ノードの分だけきちんと表示されているので、 GROUPノードを繰り返すというActionScriptの記述は間違っていないように思います。 どなたか解決策をご存知でしたら、是非ご教示下さい。 何卒よろしくお願いいたします。

みんなの回答

回答No.1

onRelease される時点で_root.URLはループの一番最後になっています。 URLを_rootに保持するのではなく、各ムービークリップに持たせます。 this["target_mc"+i].url = _root.URL;/*リンクを設定*/ this["target_mc"+i].link_btn.onRelease = function() { getURL(this._parent.url);/*リンクに飛ばす*/ }; ※ link_btnがボタンシンボルであれば、 getURL(this.url);になるかも知れません。

haoncream
質問者

お礼

初心者の質問にご丁寧にご回答頂きありがとうございました。 >onRelease される時点で_root.URLはループの一番最後になっています。 >URLを_rootに保持するのではなく、各ムービークリップに持たせます。 onReleaseされた時点で、_root.URLがループの一番最後になっている件、大変勉強になりました。 教えて頂いた方法、 -------------------------------------------------------- getURL(this._parent.url);/*リンクに飛ばす*/ -------------------------------------------------------- で無事にリンクを各XMLの値に設定し、飛ばすことが出来ました。 本当にありがとうございました。