ActionScript 预加载器更详细的百分比


ActionScript Preloader More Detailed Percentages

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

4
8
13
17
23 etc...

我正在寻找一种方法来更密切地监控这一进展,所以我得到了1, 2, 3, etc....如果数字重复,那没关系。我的预加载器的某些部分依赖于这些值,因此,能够在没有跳过整数的情况下从 1 到 100 获取它们会很棒。

谢谢你的时间。

这没有意义 - 除非您的互联网连接一次只加载 1% 的文件。

正在发生的事情是,在收到每个新数据包后,根据您的下载速度(假设在 200 到 230kb 之间(,它可以是任何大小。 每次收到其中一个时都会调度ProgressEvent.PROGRESS,如您所料添加到加载的总百分比中。

所以基本上,假设我们正在加载一个 1000kb 的文件,您的下载速度是 100-150kbps

每次

分派ProgressEvent.PROGRESS时调用的函数中的每个trace()都将在收到新数据包时运行,因此:

已加载 100kb - 共 100 条 - 跟踪 10 已加载 120kb - 共 220 个 - 跟踪 22
已加载 150KB - 370 总计 - 迹线 37

等。

你到底需要这些百分比做什么?没有办法强迫URLLoader每1%给你一个更新的东西,但你可以伪造它。

如果你想估计你的下载速度,你可以用getTimer获取时间,以及每次你得到进度事件时从ProgressEvent下载到现在的数量;一旦你有了,你可以比较新值和旧值,并获得下载速度的近似值。

你可以做类似的事情来平滑进度条,一旦你有下载率,你可以发推你的进度条,每帧都有一个小的更新,每次你得到一个进度事件时,你都会得到一个更准确的更新。

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

另一种常见的方法是通过在两个间隔之间补间值来模拟它,使其看起来更平滑。但这听起来并不像你想要实现的目标。