Загрузка изображений с использованием URLLoader AS3 - PullRequest
8 голосов
/ 03 октября 2009

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

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

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

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


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


Обновление 2 :
Невозможно установить данные в фиктивной FileReference, данные доступны только для чтения.


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

"К сожалению, возникла проблема с получением события прогресса. Мы не можем показать какой-либо прогресс при отправке данных на сервер, потому что flash не поддерживает его" *

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

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010

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

0 голосов
/ 03 октября 2009

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

...