我正在为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
为什么在加载期间bytesTotal会发生变化?
答案 0 :(得分:4)
随着运行时共享库的开始下载,总数可能会增加。您可以通过阅读Preloader
源代码了解更多信息。
SDK \框架\项目\框架\ SRC \ MX \预加载\ 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
答案 1 :(得分:0)
或另一种方法是将预加载器分成6个阶段,预加载器加载每个组件并从0到100%运行,然后递增加载的数字或“部件”并在屏幕上显示