我正在为我正在构建的Flash应用程序构建预加载器。我正在寻找一种方法来获得所有预加载器用于跟踪下载进度的ProgressEvent.PROGRESS
更详细的百分比。当我对一个小文件的加载器百分比运行trace()
语句时,我的输出窗口显示如下:
4
8
13
17
23 etc...
我正在寻找一种能够更密切地监控这一进展的方法,因此我得到1, 2, 3, etc...
。如果重复数字,那没关系。我的预加载器的部分依赖于这些值,因此,能够从1 - 100获得它们并且没有跳过整数将是很好的。
感谢您的时间。
答案 0 :(得分:2)
这没有意义 - 除非您的互联网连接一次只加载文件的1%。
发生的事情是,收到每个新数据包后,它可以是基于您的下载速度的任何大小(假设介于200和230kb之间)。每次收到其中一个时,都会调度ProgressEvent.PROGRESS
,并按照您的预期加载总加载百分比。
基本上,假设我们正在加载 1000kb 文件,您的下载速度 100-150kbps 。
在收到新数据包时,将在每次trace()
调度时调用函数中的每个ProgressEvent.PROGRESS
,因此:
100kb装载 - 总共100个 - 痕迹 10个装120kb - 总共220个 - 痕迹22
150kb装载 - 370 总计 - 痕迹37
等
答案 1 :(得分:0)
您到底需要这些百分比到底是什么?没有办法强制URLLoader每1%给你一次更新,但是你可以伪造它。
如果您想估算下载速度,每次获得进度事件时,您都可以使用getTimer和从ProgressEvent下载的数量获得时间;完成后,您可以比较新值和旧值,并获得下载速度的近似值。
你可以做一个类似的事情来平滑进度条,一旦你有下载速率,你可以发推进度条,每次获得一个小的更新,每次获得ProgressEvent时更准确的更新。
答案 2 :(得分:-2)
你的帧速率有多快?可能是它设置得太低,导致进度刷新的频率降低。我会尝试增加你的帧率或主要电影。
另一种常见的方法是通过在两个间隔之间补间值来模拟它,因此它看起来更平滑。但它听起来并不像你想要达到的那样。