为了找到答案,我已经研究了4天。我为我的代码找到了一些解决方案,包括这个网站上给出的一些解决方案;然而,它们似乎都没有产生我试图在我的网站上创建的结果
项目是:我正在使用XML数据创建一个媒体播放器。到目前为止,我已经用两种不同的方式解析了XML数据,目的是将所有返回的数据从一个类放入一个公共数组中,这样我就可以在一个完全不同的类中使用它(该类中的公共数组)
我尝试过返回值,但经过实验,我认为甚至不可能从事件处理程序函数中获得返回值。我在这个网站上的一篇帖子中设定了一个值;然而,该值只包含该函数中的XML数据,我仍然不能将其用作其他类中的公共变量。
public function getXML(xmlUrl:String):void{
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest(xmlUrl));
xmlLoader.addEventListener(Event.COMPLETE, LoadXML2);
};
public function LoadXML2(evt:Event):void{
_xmlData = XML(evt.currentTarget.data);
_albArray=[];
_albArray = parseXML2(_xmlData);
};在函数LoadXML2中("2"在那里,因为这两个都是我原始代码尝试的第二个版本),_albArray的值被设置并返回我需要它返回的对象。现在的问题是,这个值只在这个函数中设置,即使_albArray是其他类可以访问的类的公共变量,我仍然无法访问返回的数据。因为它是一个事件处理程序,所以我不能简单地调用函数本身并从一个单独的类中提取值。有什么想法吗?
上面提供的代码应该可以工作:一旦加载XML,_albArray将包含正确的值,并且该值将可以从其他类中读取。也许parseXML2函数不起作用?还是我误解了你的问题?
您还应该考虑侦听IOErrorEvent.IO_ERROR,以防加载XML失败。