2010-01-24 86 views
1

我有以下結構的XML:AS3讀取XML,創建對象並將它們存儲在一個陣列

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

和IM得到它到閃存爲這樣:

 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

你可以只使用一個XMLList並遍歷該

var pl:XMLList = NodesXml.node; 

這將創建一個XMLList在你的XML每個「節點」元素可以是通過索引像數組訪問。然後,您可以通過XMLList中的元素循環:

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

    var nodeimage = pl.img[p]; 

    } 

爲在舞臺上,你可以實現它擴展一個類的對象精靈:

public class CustomSprite extends Sprite { 


     public var somevalue:int; 

    } 

您可以將您的CustomSprite添加到舞臺,並有屬性,你可以通過節點列表循環來從xml中填充屬性。

,如果你不知道怎麼那麼這裏創建自定義類是一個教程:

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

+0

謝謝你,我可以問你寫的樣本?簡化了一些事情,我很難想象我頭腦中的結構。我不能理解我將如何單獨存儲值或對象,以便以後可以使用所有屬性訪問它們。 – Marvin 2010-01-24 15:07:25

+0

我會擔心在xml中使用「節點」和「名稱」,因爲即使它們工作,它們也會在閃存中被高亮顯示爲保留字 – PeanutPower 2010-01-24 15:11:02

+0

生病時要記住名字。你也可以檢查我放在原始文章中的代碼嗎?我不能理解你的例子。 – Marvin 2010-01-24 15:12:06

相關問題