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