无限文件大小加载as3

时间:2012-03-13 15:46:02

标签: actionscript-3

我正在尝试在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我,但仍然是同样的问题......

1 个答案:

答案 0 :(得分:1)

您需要使用URLLoader类来加载xml数据,而不是LoaderLoader类用于加载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);