As3读取xml,创建对象并将它们存储在数组中

时间:2010-01-24 15:01:57

标签: xml actionscript-3

我有一个具有以下结构的xml:

<NODES>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
</NODES>

然后我就这样进入闪光灯:

        var loader:URLLoader = new URLLoader();   
        loader.addEventListener(Event.COMPLETE, loadNodes);
        loader.load(new URLRequest("../resources/xml/nodes.xml"));
        function loadNodes(e:Event):void
        {
            var NodesXml:XML = new XML(e.target.data);
            trace(NodesXml);
            //path: resources\xml\nodes.xml
            }

我想让每个节点都变成“东西”,这就是我需要帮助的地方。 我想将每个“NODE”放到舞台上,所以我需要在某处存储所有属性,如名称和图像URL。这是用对象完成的吗?

如果是这样,我必须以某种方式循环xml并为每个NODE创建一个具有“属性”的对象?我应该让他们进入阵列吗?

我在看:

XmlNodeList  NODEList  = doc.GetElementsByTagName("NODE");

 foreach (XmlNode NODE in NODEList)
 { 
 //Create an object and store the values

1 个答案:

答案 0 :(得分:1)

你可以使用XmlList并迭代

var pl:XMLList = NodesXml.node;

这将为xml中的每个“node”元素创建一个XMLList,可以通过像数组这样的索引来访问它。然后,您可以循环遍历XMLList中的元素:

  for (var p:int=0;p<pl.length();p++){

  var nodeimage = pl.img[p];

  }

对于舞台上的对象,你可以实现一个扩展sprite的类:

   public class CustomSprite extends Sprite {


       public var somevalue:int;

   }

你可以将你的CustomSprite添加到舞台上,并在其上有属性,你可以在循环遍历节点列表的同时从xml中填充它。

如果你不知道如何创建自定义类,那么这里是一个教程:

http://www.flashandmath.com/bridge/fractions/example1.html