Выполнение многокомпонентной загрузки Flex

Я загружаю файл на сервер, используя составной файл URLLoader. У меня нормально загружается файл. Я пытался прослушать событие прогресса в URLLoader, но оно срабатывает только в самом конце загрузки. Как я могу более последовательно получать событие прогресса через загрузку?


person asawilliams    schedule 21.09.2010    source источник


Ответы (1)


Есть индикатор выполнения:

<mx:ProgressBar width="100%" id="progBar" mode="manual" />

Зарегистрируйте обработчик события прогресса:

refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);

И справиться с этим:

private function onUploadProgress(event:ProgressEvent):void {
        var numPerc:Number = Math.round(
            (Number(event.bytesLoaded) / Number(event.bytesTotal)) * 100);
        progBar.setProgress(numPerc, 100);
        progBar.label = numPerc + "%";
        progBar.validateNow();
}

Если ваши файлы небольшие, нормально получать не так много событий. Попробуйте с большими файлами.

person Bozho    schedule 21.09.2010
comment
это именно то, что я сделал. Проблема по-прежнему в том, что событие запускается только в самом конце загрузки. - person asawilliams; 21.09.2010
comment
возможно, ваши файлы очень маленькие? Попробуйте с большим. - person Bozho; 21.09.2010
comment
я пытался с размером файла 1,6 МБ, это занимает около 20 секунд. - person asawilliams; 21.09.2010
comment
в порядке. какая версия флекса тогда? Видите ли, здесь много неизвестной мне информации. (Кстати, приведенный выше код отлично работает для меня, поэтому я удивлен, что это не для вас) - person Bozho; 21.09.2010
comment
я на 3.5sdk. Ключевое отличие заключается в использовании multipart. Если бы он не был составным, ваш код работал бы нормально. - person asawilliams; 21.09.2010
comment
а зачем вам, чтобы он был многочастным? - person Bozho; 21.09.2010
comment
UrlLoader запускает ProgressEvent только для операции загрузки, поэтому itf запускает первое событие, когда весь файл загружен, и вы загружаете страницу. Вы не можете использовать его для мониторинга загрузки - person wezzy; 21.10.2010