As3 reading xml, creating objects and storing them in an array
I have a xml with the following structure:
<NODES>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
</NODES>
And im getting it into flash as so:
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
}
I want to get each of the nodes into "something", and thats were I need help. I want to get each "NODE" onto the stage so I need to store all the properties such as name and image url somewhere. Is this done with objects?
If so would I have to loop the xml in some way and for each NODE create an object with the "properties"? And Should I get t开发者_开发技巧hem into an array?
I was looking at:
XmlNodeList NODEList = doc.GetElementsByTagName("NODE");
foreach (XmlNode NODE in NODEList)
{
//Create an object and store the values
you can just use an XmlList and iterate over that
var pl:XMLList = NodesXml.node;
this will create an XMLList for each "node" element in your xml which can be accessed via an index like an array. You can then loop through the elements in the XMLList:
for (var p:int=0;p<pl.length();p++){
var nodeimage = pl.img[p];
}
for the objects on the stage you could implement a class which extends sprite:
public class CustomSprite extends Sprite {
public var somevalue:int;
}
you can add your CustomSprite to the stage and have properties on it which you would populate from your xml whilst looping through the node list.
if you don't know how to create custom classes then here is a tutorial:
http://www.flashandmath.com/bridge/fractions/example1.html
精彩评论