我正在尝试在Actionscript中做一件最简单的事情,但代码似乎只是想要处理XML的第三个节点。下面是XML代码:
<?xml version="1.0" encoding="utf-8"?>
<flags>
<flag>
<sigla>pt-br</sigla>
<png>brazil.png</png>
<nome>Portugues</nome>
</flag>
<flag>
<sigla>esp</sigla>
<png>spain.png</png>
<nome>Espanol</nome>
</flag>
<flag>
<sigla>en</sigla>
<png>usa.png</png>
<nome>English</nome>
</flag>
</flags>下面是AS2代码:
var flagsXML = new XML();
flagsXML.ignoreWhite = true;
_root.linkFlags = "";
_root.flagSpacing = 5;
flagsXML.onLoad = function(success:Boolean){
if(success){
flagsNode = flagsXML.firstChild;
flagsTotal = flagsNode.childNodes.length;
for(i=0;i<flagsTotal;i++){
//var flagItem = new MovieClip();
flagItem = flagsMc.attachMovie("idioma","idioma"+i,_root.getNextHighestDepth());
flagItem.png.loadMovie("img_idiomas/"+String(flagsNode.childNodes[i].childNodes[1].childNodes[0].nodeValue));
//loadMovie("img_idiomas/"+flagsNode.childNodes[i].childNodes[1].childNodes[0].nodeValue);
flagItem._x -= 16*(i+1);
trace("sigla"+i+": "+flagsNode.childNodes[i].childNodes[1].childNodes[0].nodeValue);
}
}
}
flagsXML.load("xml/flags.xml");好的。在Trace命令中,他输出png井的名称,但它实际上只在最后一次'for‘迭代中附加了movieClip。我试着调试这部电影,当i=0或1时,它甚至没有附加电影。
啊,我仔细检查了图像文件夹,文件名,等等。
谢谢你的帮助。
发布于 2009-08-30 18:14:37
刚刚发现了您的问题,幸运的是它很小:)
flagItem = flagsMc.attachMovie("idioma","idioma"+i,_root.getNextHighestDepth());应该是
flagItem = flagsMc.attachMovie("idioma","idioma"+i,flagsMc.getNextHighestDepth());由于您不会将剪辑添加到_root,因此highestDepth不会更改,因此每次迭代时,您都会以相同的深度覆盖上一个剪辑。
https://stackoverflow.com/questions/1354314
复制相似问题