是否可以从AcstionScript事件处理程序获取返回值?

时间:2012-12-16 01:17:07

标签: xml actionscript event-handling xml-parsing return-value

我已经研究了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是其他类可以访问的类的公共变量。因为它是一个事件处理程序,所以我不能简单地调用函数本身并从单独的类中提取值。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

上面介绍的代码应该可以工作:_albArray将在XML加载后包含正确的值,并且该值可以从其他类读取。也许parseXML2函数不起作用?或者我误解了你的问题?

如果加载XML失败,您还应该考虑侦听IOErrorEvent.IO_ERROR。