我有2d嵌套數組的問題,我想創建一個來自XML的。 我的XML(「的test.xml」)是這樣的:AS3如何從xml訪問嵌套數組?
<content>
<item image="Mike.jpg" name="Mike" state = "New York">
<complex fid = "0"> ju675</complex>
<complex fid = "1"> kyu49</complex>
</item>
<item image="John.jpg" name="John" state = "New Jersey" >
<complex fid = "0"> mg749</complex>
<complex fid = "1"> ks749</complex>
<complex fid = "2"> ks678</complex>
</item>
<item image="Smith.jpg" name="Smith" state = "California">
<complex fid = "0"> we649</complex>
<complex fid = "1"> sd449</complex>
<complex fid = "2"> df459</complex>
<complex fid = "3"> hj569</complex>
</item>
</content>
這裏是我使用的AS3代碼,我想使用只能創建嵌套陣列的這種方法,我敢肯定IA在做有什麼不對,但不知道在哪裏。
var level:Array = [];
var complexes:Array = [];
loadXML();
function loadXML():void
{
var loader:URLLoader=new URLLoader();
loader.addEventListener(Event.COMPLETE,completeXMLHandler);
var request:URLRequest=new URLRequest('test.xml');
try
{
loader.load(request);
}
catch(error:Error)
{
trace('Impossible to load the document.');
}
}
function completeXMLHandler(event:Event):void
{
var loader:URLLoader=URLLoader(event.target);
var result:XML=new XML(loader.data);
var myXML:XMLDocument=new XMLDocument();
myXML.ignoreWhite=true;
myXML.parseXML(result.toXMLString());
for each (var usr in result.item)
{
level.push({name:[email protected],state:[email protected],complex:usr.item,state:[email protected]});
}
for (var row:int = 0; row < level.length; row++)
{
trace(level[row].name);
for (var column:int = 0; column < level[row].length; column++)
{
trace(level[row][column].complex);
}
}
}
作爲一個側面提示:確保你正確縮進代碼(我修正了你的例子)。它使閱讀變得更加容易(因此更容易得到答覆),我敢肯定,在某些圈子裏,違反這條規則是一個可恥的罪行。 – cwallenpoole 2011-02-24 18:15:22