我几天前遇到过这个问题,同时尝试将外部xml文件导入AIR应用程序。
import flash.net.URLRequest;
var ldr:Loader = new Loader();
var url:String = "http://willperone.net/rss.php";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
ldr.addEventListener(Event.COMPLETE , function(e) {
trace('Wow, completed ...');
});
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(e) {
trace('IO_ERROR');
});
并始终显示IO_ERROR。 我可能做错了或需要一些配置的东西,所以请帮助
答案 0 :(得分:2)
IOErrorEvent
告诉您它无法加载您尝试加载的资源。 http://willperone.net/rss.php实际上有什么东西吗?也许XML或PHP解析错误?我还注意到您正在使用Loader
来尝试加载文本内容。要用于加载XML(或文本,json,二进制等)的类是URLLoader
。 Loader
是一个DisplayObject
子类,主要用于将swfs,图像和可视资源加载到显示列表中。这可能是罪魁祸首。
答案 1 :(得分:0)
谢谢你们, 我发现问题出在哪里: 我没有指定收到的内容的类型, 它在我使用时解决了
request.contentType = "text/xml";
所以代码看起来像这样:
function getData(onComplete) {
var request:URLRequest = new URLRequest("http://...");
request.contentType = "text/xml";
request.data = "";
request.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE ,function(e) { xmlParser(e); onComplete(e); } );
try
{
mainData.splice(0,mainData.length);
loader.load(request);
return true;
}
catch (e){
return false;
}
}
function xmlParser(e) {
var xml:XML = new XML(URLLoader(e.target).data);
}
}