множественный URLLoader - PullRequest
       19

множественный URLLoader

0 голосов
/ 04 июня 2010

Я загружаю несколько XML-файлов с помощью URLLoader.

for (var i=0;i<xmlCount;i++) {
     loadXML(xmlFiles[i], i);
}

public function loadXML(req:String=null, _id:Number=0):void {
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(ProgressEvent.PROGRESS, 
             function a(e:ProgressEvent) {XMLLoadProgress(e, _id);});
     loader.addEventListener(Event.COMPLETE, XMLLoadFinished);
     loader.load(new URLRequest(req));

}

private function XMLLoadProgress(e:ProgressEvent=null, _id:Number=0):void {
     dispatchEvent(new LoadingEvent(Model.LOADING_PROGRESS, _id, (e.bytesLoaded/e.bytesTotal)*100));
}

Проблема в том, что я думаю, что LOADING_PROGRESS отправляется после того, как вся загрузка выполнена, и каждый XML загружен один за другим, не асинхронно.

Как я могу заставить его загружаться асинхронно, а также делать так, чтобы событие прогресса вызывалось для каждого такта прогресса.

Ответы [ 2 ]

0 голосов
/ 14 января 2013

Вы можете настроить URLLoader.

public function SequenceLoader extends URLLoader {
    private var index:int;

    public function SequenceLoader(index:int) {
        this.index = index;
    }
}

затем в каждом loadXML отметьте загрузчик:

public function loadXML(req:String=null, _id:Number=0):void {
     var loader:SequenceLoader = new SequenceLoader(_id);
     loader.addEventListener(ProgressEvent.PROGRESS, 
             function a(e:ProgressEvent) {XMLLoadProgress(e);});
     loader.addEventListener(Event.COMPLETE, XMLLoadFinished);
     loader.load(new URLRequest(req));
}

private function XMLLoadProgress(e:ProgressEvent=null):void {
   var loader:SequenceLoader  = e.target as SequenceLoader;
   var loaderIndex:int = loader.index;
  //do other stuff
}
0 голосов
/ 04 июня 2010

Я предполагаю, что это происходит только при просмотре через быстрое соединение. Попробуйте просмотреть при медленном соединении (у Charles Proxy есть возможность искусственно замедлять ваше соединение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...