電子書籍の厳選無料作品が豊富!

初心者です。
XMLからテキストデータを読み込んで、
リンクを貼り付けようとしてるのですが、うまくいきません。
どなたかご教授いただけないでしょうか?

■XMLの中身
<?xml version="1.0" encoding="UTF-8"?>
<file>
<visual>
<gazou>./main/001.jpg</gazou>
<thumb>./navi/thumb_001.png</thumb>
<url>http://www.yahoo.co.jp/</url>
</visual>

<visual>
<gazou>./main/002.jpg</gazou>
<thumb>./navi/thumb_002.png</thumb>
<url>http://www.google.co.jp/</url>
</visual>

<visual>
<gazou>./main/003.jpg</gazou>
<thumb>./navi/thumb_003.png</thumb>
<url>http://okwave.jp/</url>
</visual>

<visual>
<gazou>./main/004.jpg</gazou>
<thumb>./navi/thumb_004.png</thumb>
<url>./test.html</url>
</visual>
</file>

■ASの一部↓

menu_mc["btn_mc"+i].onPress = function() {
getURL(myXML.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue,"_blank");

A 回答 (1件)

anzunyaさん、


AS2.0使用と思いますが、記載のASの一部は、良く分かりませんが、ボタンで、XMLで読み込んだURLにリンクさせたいということだと思いますので、以下のようにしてみました。
/*xmlファイル名を、url.xmlとしました
<?xml version="1.0" encoding="UTF-8"?>
<file>
<visual>
<gazou>./main/001.jpg</gazou>
<thumb>./navi/thumb_001.png</thumb>
<url>http://www.yahoo.co.jp/</url>
</visual>

<visual>
<gazou>./main/002.jpg</gazou>
<thumb>./navi/thumb_002.png</thumb>
<url>http://www.google.co.jp/</url>
</visual>

<visual>
<gazou>./main/003.jpg</gazou>
<thumb>./navi/thumb_003.png</thumb>
<url>http://okwave.jp/</url>
</visual>

<visual>
<gazou>./main/004.jpg</gazou>
<thumb>./navi/thumb_004.png</thumb>
<url>./test.html</url>
</visual>
</file>
*/
/*ここから
400×200のステージに、50×50で作ったMovieClipが4つ生成され、XMLで作ったURLに、_blankで、リンクされます。*/
import mx.xpath.XPathAPI;//XpathAPIをimportすると、分かり易いです
//以下、各配列生成
var gazouList:Array = new Array();
var thumbList:Array = new Array();
var urlList:Array = new Array();

var _xml:XML = new XML();
_xml.ignoreWhite = true;
_xml.onLoad = function(success:Boolean) {
if (success) {
var rootNode:XML = this.firstChild;
gazouList = XPathAPI.selectNodeList(rootNode, "/file/visual/gazou/*");
thumbList = XPathAPI.selectNodeList(rootNode, "/file/visual/thumb/*");
urlList = XPathAPI.selectNodeList(rootNode, "/file/visual/url/*");//ここから、URLを抽出する
trace(gazouList.length);//今回は、4となる

for (var i:Number = 0; i<gazouList.length; i++) {
trace(gazouList[i]);
trace(thumbList[i]);
trace(urlList[i]);
}
makeButton();//下のカスタム関数を実行する
} else {
trace("error!");
}
};
_xml.load("url.xml");
//_xml.load("rss.xml?"+getTimer());//ローカルではエラーとなりますが、サーバーアップ時は、ブラウザーのキャッシュ対策として、こっちを使用する、

function makeButton() {//ライブラリー内に作っておく、識別子 BtnのMovieClipを、ステージに生成するカスタム関数を設置しておく
for (var i:Number = 0; i<gazouList.length; i++) {
var btn:MovieClip = this.attachMovie("Btn", "btn"+i, i);
btn._x=40+90*i;//位置決め、適当
btn._y=75;
btn._txt.text=String(i);//btnの中に、設置した、ダイナミックテキスト _txtに、i を代入
btn.id = i;//iを、btnに動的に生成するプロパティ id に、保管しておく
btn.onRelease = function():Void {
getURL(urlList[this.id], "_blank");/*btn.id、即ち、this.id で、配列urlListから、要素を抽出する。3番目のボタンは、.test/htmlを作らないかぎり、リンクされない*/
};
}
}
//ここまで
尚、XPathAPIについては、下の、吉岡梅さんの解説が、分かりやすいので、参考に、記載しておきます。

参考URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20061 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
自分のサンプルを確認したところ、URL表示部がXML用には
配列処理されていなかったので、回答いただいた処理を参考に
書き換えて試してみようと思います!

ありがとうございました!(^v^)

お礼日時:2009/11/19 14:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!