我正在尝试加载带有书籍列表的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()部分添加了评论,以解释一下发生了什么 提前谢谢。
答案 0 :(得分:1)
第一个跟踪没有显示您想要的内容,因为XML是异步加载的。这就是为什么将LoadXML
添加为“完整”事件的事件侦听器的原因。因此,无论您想对加载的XML做什么,都应该在LoadXML
函数中执行。
答案 1 :(得分:0)
在初始阶段,您正在尝试跟踪书籍,加载程序尚未完成加载到您的XML文件中 - 因此它不会跟踪任何内容。然而,第二个是因为它与Complete事件绑定,并且仅在加载器加载XML时才会触发。 如上所述,您要对XML文件执行的任何操作都应放在LoadXML函数中。