Flash ProgressEvent не показывает общий размер

Я использую ProgressEvent во Flash, чтобы определить, сколько времени потребуется для загрузки. У меня есть это:

        progress = event.target.bytesLoaded/event.target.bytesTotal;

установить процент.

Немного почесав голову, я провел трассировку по двум значениям — и оказалось, что «event.target.bytesTotal» всегда равен нулю.

Я не могу найти упоминания об этом в Flex/AS3/Flash API. Любые подсказки о том, как заставить bytesTotal работать?

(в настоящее время я читаю из файла PHP на веб-сервере)


person Andy Moore    schedule 13.05.2009    source источник


Ответы (2)


Ты пытался:

 progress = event.bytesLoaded/event.bytesTotal;

bytesTotal/bytesLoaded должны быть свойством события progress.

Кроме того... У меня была эта проблема вчера, и она полностью поставила меня в тупик, пока я не подумал проверить файл, который загружал, и он оказался поврежденным и 0 байтов - так что перепроверьте и это тоже :)

person quoo    schedule 13.05.2009
comment
Хм, ваш код дает точно такой же эффект (bytesLoaded работает нормально, bytesTotal всегда сообщает 0). Я знаю, что файл в порядке, потому что в конечном итоге он загружается и работает. :) - person Andy Moore; 14.05.2009
comment
Действительно странно. Если вы попробуете код с другим php-файлом или чем-то еще, он сделает то же самое? - person quoo; 14.05.2009
comment
Если вы проверите свойство urlloader.bytesTotal (или что-то еще, что вы используете) того, что вы загружаете, это тоже ноль? - person quoo; 14.05.2009
comment
Может быть, файл, который вы загружаете, каким-то образом не имеет заголовка Content-Length? - person ; 18.06.2009

Мы решили эту проблему на нашем сервере, отключив сжатие некоторых типов файлов.

BytesTotal был равен 0 для файлов, которые обслуживались в сжатом виде. Это сжатие происходит «на лету», поэтому сервер не может сообщить размер файла (поскольку он его еще не знает). Удаление компрессии решило это.

person frankhermes    schedule 07.12.2009