Загрузка файлов с бесконечным размером as3 - PullRequest
0 голосов
/ 13 марта 2012

Я пытаюсь загрузить большой XML-канал в ActionScript3. Проблема в том, что событие 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 i, но та же проблема ...

1 Ответ

1 голос
/ 13 марта 2012

Вам нужно использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...