首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flash AS2 + XML

Flash AS2 + XML
EN

Stack Overflow用户
提问于 2009-08-30 17:03:34
回答 1查看 982关注 0票数 0

我正在尝试在Actionscript中做一件最简单的事情,但代码似乎只是想要处理XML的第三个节点。下面是XML代码:

代码语言:javascript
复制
<?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代码:

代码语言:javascript
复制
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时,它甚至没有附加电影。

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

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-30 18:14:37

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

代码语言:javascript
复制
flagItem = flagsMc.attachMovie("idioma","idioma"+i,_root.getNextHighestDepth());

应该是

代码语言:javascript
复制
flagItem = flagsMc.attachMovie("idioma","idioma"+i,flagsMc.getNextHighestDepth());

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1354314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档