我试图从一个事件返回XML返回主函数,但无法弄清楚如何去做。AS3从事件侦听器函数返回一个变量
这里是我打电话的功能:
主文件:
public var mySendAndLoad:SendAndLoad = new SendAndLoad();
mySendAndLoad.sendData(url,variables)
的mySendAndLoad类:
package
{
import flash.events.*;
import flash.net.*;
import flash.xml.XMLDocument;
public class SendAndLoad
{
public var xml:XML = new XML();
public var xmlList:XMLList;
public function SendAndLoad()
{
}
public function sendData(url:String, _vars:URLVariables):String
{
var request:URLRequest = new URLRequest(url);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
request.data = _vars;
request.method = URLRequestMethod.POST;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.load(request);
}
private function handleComplete(event:Event):String
{
var loader:URLLoader = URLLoader(event.target);
xml = XML(loader.data);
xmlList = xml.children();
return(xmlList[1]);
}
private function onIOError(event:IOErrorEvent):void
{
trace("Error loading URL.");
}
}
}
我希望发生的是拥有的XMLList回来了主文件。但由于它不是在我调用(sendData)的情况下,它不会被带回。
任何想法?
嗨,我刚刚尝试在我自己的项目中使用此代码。但是,Flash会报告公用函数sendData的错误,并说它不返回值。我试着将函数设置为:void,但它仍然表示相同的错误。对此有何帮助?谢谢 –
@MrPablo,哇,我不敢相信这么长时间没有人发现这个错误。我已经编辑了答案(将函数更改为void)并且它可以正常工作。我建议你清理这个项目(如果你使用的是Flash Builder)或者重新启动Flash Pro并重试 –
是的,我在发表我的评论后不久就明白了! –