在Actionscript中加载XML 3

时间:2012-04-02 12:36:22

标签: xml actionscript-3 flash actionscript

我正在尝试加载带有书籍列表的XML文件,我环顾四周找到了这个功能,试图调整它以适合我,但我无法让它工作,我能够加载XML并实际从中读取信息,但我试图设置一个全局数组或类似的东西,以便我以后可以访问数据,

继承人代码:

var books:XML = loadBooks();
trace(books); //Returns a blank output

function loadBooks():XML {
    var xmlLoader:URLLoader = new URLLoader();
    var xmlData:XML = new XML();
    xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
    xmlLoader.load(new URLRequest("bookList.xml"));

    function LoadXML(e:Event):void {
    xmlData = new XML(e.target.data);
    trace(xmlData); //Returns what I want to have
    }

    return xmlData;
}

我在trace()部分添加了评论,以解释一下发生了什么 提前谢谢。

2 个答案:

答案 0 :(得分:1)

第一个跟踪没有显示您想要的内容,因为XML是异步加载的。这就是为什么将LoadXML添加为“完整”事件的事件侦听器的原因。因此,无论您想对加载的XML做什么,都应该在LoadXML函数中执行。

答案 1 :(得分:0)

在初始阶段,您正在尝试跟踪书籍,加载程序尚未完成加载到您的XML文件中 - 因此它不会跟踪任何内容。然而,第二个是因为它与Complete事件绑定,并且仅在加载器加载XML时才会触发。 如上所述,您要对XML文件执行的任何操作都应放在LoadXML函数中。