1

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

4

1 回答 1

0

您上面提供的代码应该可以工作:一旦 XML 加载,_albArray 将包含正确的值,并且该值将从其他类中读取。也许 parseXML2 函数不起作用?还是我误解了你的问题?

您还应该考虑监听 IOErrorEvent.IO_ERROR,以防加载 XML 失败。

于 2012-12-16T03:24:32.487 回答