ActionScript Preloader更详细的百分比

时间:2011-06-01 00:59:54

标签: php flash actionscript-3 actionscript preloader

我正在为我正在构建的Flash应用程序构建预加载器。我正在寻找一种方法来获得所有预加载器用于跟踪下载进度的ProgressEvent.PROGRESS更详细的百分比。当我对一个小文件的加载器百分比运行trace()语句时,我的输出窗口显示如下:

4
8
13
17
23 etc...

我正在寻找一种能够更密切地监控这一进展的方法,因此我得到1, 2, 3, etc...。如果重复数字,那没关系。我的预加载器的部分依赖于这些值,因此,能够从1 - 100获得它们并且没有跳过整数将是很好的。

感谢您的时间。

3 个答案:

答案 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)

你的帧速率有多快?可能是它设置得太低,导致进度刷新的频率降低。我会尝试增加你的帧率或主要电影。

另一种常见的方法是通过在两个间隔之间补间值来模拟它,因此它看起来更平滑。但它听起来并不像你想要达到的那样。