1
我試圖解析XML文件並從其數據創建對象數組。數據轉換爲MediaAlbum類(我自己的類)。 XML被正確解析並且對象被加載,但是當我實例化它時,Albums
數組的長度爲零,即使數據加載正確。AS3:從XML解析的對象數組保持爲零長度
我真的不知道問題是什麼......任何提示?
import Nem.Media.*;
var mg:MediaGallery = new MediaGallery("test.xml");
trace(mg.Albums.length);
MediaGallery類:
package Nem.Media
{
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;
public class MediaGallery
{
private var jsonGalleryData:Object;
public var Albums:Array = new Array();
public function MediaGallery(xmlSource:String)
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest(xmlSource));
loader.addEventListener(Event.COMPLETE, loadGalleries);
}
public function loadGalleries(e:Event):void
{
var xmlData:XML = new XML(e.target.data);
var album;
for each (album in xmlData.albums)
{
Albums.push(new MediaAlbum(album.attribute("name"), album.photos));
}
}
}
}
XML測試來源:
<gallery>
<albums>
<album name="Fútbol 9">
<photos>
<photo width="600" height="400" filename="foto1.jpg" />
<photo width="600" height="400" filename="foto2.jpg" />
<photo width="600" height="400" filename="foto3.jpg" />
</photos>
</album>
<album name="Fútbol 8">
<photos>
<photo width="600" height="400" filename="foto4.jpg" />
<photo width="600" height="400" filename="foto5.jpg" />
<photo width="600" height="400" filename="foto6.jpg" />
</photos>
</album>
</albums>
</gallery>
解決
添加回調函數來構造器,一旦加載完成處理XML數據。
我將它通過改變callbackObj成一個函數,然後使用'callbackObj.call(本)'工作。感謝提示馬特! – 2010-04-10 15:18:32