Flash Preloader, как узнать, находится ли в заархивированном окружении и загрузить соответственно - PullRequest
0 голосов
/ 20 сентября 2011

Есть два состояния, с которыми может столкнуться флэш-предзагрузчик.
1) TotalBytes известен (окончательный размер файла SWF)
2) TotalBytes неизвестно (происходит, если сервер сжимает обслуживаемые / выходные файлы).

В настоящее время я использую totalBytes == 0 (Chrome, Safari), чтобы swf был неопределенным, и просто показываю зацикленную анимацию с отображением загруженного бита.
ОДНАКО в Firefox totalBytes ==loadedBytes. Я могу только предположить, что это было сделано для предотвращения большого количества делений на ноль исключений, когда предзагрузчик пытается определить процент загрузки.

Выпуск:
Есть ли другие способы определить, в каком состоянии предварительной загрузки (определить размер файла или неопределенный размер файла), в котором я нахожусь?

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Если apache сжимает или передает весь трафик с сервера, файл swf теряет информацию о своем размере файла. Проверьте значение totalBytes, которое обычно должно быть размером SWF-файла, если оно равно нулю, значит, оно находится в сжатом окружении.

if (loaderInfo.totalBytes == 0) // gzipped environment

Однако для Firefox необходимо выполнить специальную проверку, поскольку firefox устанавливает totalBytes ==loadedBytes.

if (loaderInfo.totalBytes == loaderInfo.loadedBytes) // gzipped environment
// OR the loaded swf is very small.
// check the load is COMPLETE Event, if !loadComplete than gzipped environment
0 голосов
/ 20 сентября 2011

Я рекомендую вам использовать LoaderMAX. потому что это так просто и легко использовать для загрузки внешних файлов. отметьте это

...