2009-10-02 2 views
8

Я разрабатываю загрузчик изображений во Flash. Я использую FileReference.browse для просмотра изображения, а затем изменяю его размер до 1000 x 1000 пикселей, если изображение очень большое, а затем загружается на сервер. Я хочу показать прогресс для прогресса загрузки изображения.Загрузка изображения с использованием URLLoader AS3

Я использую URLLoader для отправки двоичных данных с измененными размерами изображений, но ProgressEvent на URLLoader не работает так, как он должен работать. Он запускается только после того, как изображение будет загружено, а не покажется промежуточным. ProgressEvent на FileReference отлично работает, чтобы показать прогресс промежуточной загрузки.

Есть ли способ показать прогресс загрузки с помощью URLLoader? или

Можем ли мы использовать FileReference для загрузки измененного изображения, а затем вызвать FileReference.upload, таким образом можно будет показать фактический индикатор выполнения.


Update 1:
Но моя проблема в том, что я изменение размера просматриваемого изображения после использования FileReference.browse, и я хочу, чтобы загрузить изображения с измененным размером, а не исходное изображение в объекте FileReference после Разглядеть. Как использовать Filereference.upload в этом случае? Filereference.upload загрузит исходное изображение, а не измененное. Любая идея, как поместить измененное изображение в объект Filereference, а затем использовать FileReference.upload.


Update 2:
не в состоянии установить данные в фиктивной FileReference, данные только для чтения свойства.


Update 3:
Но это имеет ту же проблему, не показывая прогресс загрузки изображения, из приведенной выше ссылке:.

«К сожалению, проблема становится событием прогресса мы не можем показать никакого прогресса во время отправки данных на сервер, потому что флеш-память не поддерживает его "

Я точно ищу решение для вышеупомянутой проблемы. URLLoader отлично работает для публикации данных изображения.

+0

Я делаю ТОЧНУЮ то же самое и наткнулся на ту же проблему. Я собираюсь поставить «неточную панель загрузки» во время загрузки. – Danita

+0

Учитывая, что в моем случае результирующий файл * обычно * имеет примерно одинаковый размер, я закончил настройку таймера с расчетным временем, которое загрузка должна принимать в * большинстве * ситуаций, и чтобы этот таймер запускал ProgressEvents для обновления панели обновления , Это лучше, чем ничего, и пользователи не могут сказать разницу. – Danita

+0

Теперь это то, что я называю «блестящим решением». – Tom

ответ

0

Используйте FileReference.upload, это именно то, для чего этот метод, и у вас будет индикатор прогресса.

+0

Он не пытается загрузить исходный файл, но ByteArray из JPEG-кодировки итогового размера исходного файла. – Danita

+0

Хмм, мог бы поклясться, что первоначальный вопрос не упоминал об этом ... ну, я переписал новый ответ, который относится к ситуации, представленной в настоящее время. – JStriedl

4

URLLoader настроен таким образом, что он НЕ МОЖЕТ получать события прогресса, пока загрузка не будет завершена, как указано HERE в документах. Вы могли бы использовать URLStream вместо этого, чтобы получить событие прогресса, как вы хотите, возможно? Я не уверен, что события прогресса для URLStream только срабатывают для загрузки ответа сервера, или если они будут срабатывать для полной транзакции (загрузка & скачать), документы, похоже, точно не уточняют.

+1

Это было поддержано дважды ... Интересно, попробовал ли кто-нибудь его и подтвердил, отправляет ли URLStream надлежащие события прогресса? Я читал в другом месте, что это не так, но до сих пор нет окончательного источника ... О, хорошо. – Cameron

+0

Я ничего не вижу в URLStream, который предположил бы, что он может быть использован для загрузки чего угодно вообще! Документация описывает DOWNloading в деталях, но нет даже метода загрузки. Не могли бы вы указать, как использовать его для загрузки файла? –

Смежные вопросы