我有一个具有以下结构的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
答案 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中填充它。
如果你不知道如何创建自定义类,那么这里是一个教程: