Flash AS2 + XML

时间:2009-08-30 17:03:34

标签: xml flash actionscript-2

我正在尝试在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时它甚至不附加电影。

啊,我仔细检查了images文件夹,文件名等等。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

刚发现你的问题,幸运的是它很小:)

flagItem = flagsMc.attachMovie("idioma","idioma"+i,_root.getNextHighestDepth());

应该是

flagItem = flagsMc.attachMovie("idioma","idioma"+i,flagsMc.getNextHighestDepth());

由于您没有将剪辑添加到_root,因此最高深度不会改变,因此每次迭代时,您都会覆盖相同深度的上一个剪辑。