Зачем увеличиваться bytesTotal в предзагрузчике AS3? - PullRequest
2 голосов
/ 04 мая 2010

Я создаю пользовательский предварительный загрузчик для приложения Flex и заметил следующее поведение: при загрузке индикатор выполнения переходит на 100%, затем вниз, затем обратно, и так далее, пока приложение не завершит загрузку. *

Когда я помещаю трассировку в прослушиватель dowloadprogress, я вижу, что во время загрузки приложения увеличивается и bytesLoaded, и bytesTotal, но не обязательно одновременно.

Код:

private function onDownloadProgress(event:ProgressEvent):void {
        var loaded:int = event.bytesLoaded;
        var total:int = event.bytesTotal;
        trace(event.target,loaded,total);
        _starfield.progress = loaded/total;
    }

Выход:

[object Preloader] 134276 134276
[object Preloader] 265348 285007
[object Preloader] 285007 285007
[object Preloader] 678223 1322116
[object Preloader] 809295 1322116
[object Preloader] 1322116 1322116
[object Preloader] 1322116 1322116
[object Preloader] 1387652 1584342
[object Preloader] 1791882 1791882
[object Preloader] 2293133 2293133
[object Preloader] 2362938 2362938
[object Preloader] 2362938 2362938
[object Preloader] 2362938 2362938

Почему byteTotal изменяется во время загрузки?

Ответы [ 2 ]

4 голосов
/ 04 мая 2010

По мере загрузки общих библиотек времени выполнения общее количество может увеличиться. Вы можете узнать немного больше об этом, прочитав исходный код Preloader.

SDK \ рамки \ проекты \ рамки \ SRC \ тх \ Preloaders \ Preloader.as

Вот несколько ссылок на пользовательские образцы предзагрузчика, которые обрабатывают RSL лучше, чем по умолчанию.

http://coding.bhirschmann.de/2008/03/20/preloader-for-flex-with-rsl-support/

http://www.leavethatthingalone.com/blog/index.cfm/2009/11/11/Flex4CustomPreloader

0 голосов
/ 10 сентября 2010

или другим способом было бы разбить предварительный загрузчик на 6 этапов, при этом предварительный загрузчик загружал каждый компонент и работал от 0 до 100%, затем увеличивал число загруженных «частей» и отображал их на экране тоже

...