我正在尝试在ActionScript3中加载一个大的xml Feed。问题是progress事件表明bytesTotal为零,这导致无限加载序列。永远不会触发完整的处理程序。
这就是做什么。
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadDone);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dataAnalyzeProgress)
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, io_error);
var urlRequest:URLRequest = new URLRequest(url);
loader.load(urlRequest);
protected function io_error(event:IOErrorEvent):void
{
trace("IO ERROR")
trace(event.text)
}
protected function loadDone(event:Event):void
{
trace('DATA COMPLETE')
trace(event.target.content)
}
protected function dataAnalyzeProgress(e:ProgressEvent):void
{
trace((e.bytesLoaded / e.bytesTotal) *100+"%");
trace("Downloaded " + e.bytesLoaded + " out of " + e.bytesTotal + " bytes");
if(e.bytesTotal == 0)
{
loader.close();
}
}
有人有解决这个问题的方法。我试过先把它加载到curl我,但仍然是同样的问题......
答案 0 :(得分:1)
您需要使用URLLoader
类来加载xml数据,而不是Loader
。 Loader
类用于加载SWF和图片(JPG,PNG,GIF)。试试这些:
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadDone);
loader.addEventListener(ProgressEvent.PROGRESS, dataAnalyzeProgress)
loader.addEventListener(IOErrorEvent.IO_ERROR, io_error);
var urlRequest:URLRequest = new URLRequest(url);
loader.load(urlRequest);