我正在为我正在构建的flash应用程序构建一个预加载器。我正在寻找一种方法,以获得更详细的百分比从ProgressEvent.PROGRESS,所有预加载器用来跟踪下载进度。当我对一个小文件的加载器百分比运行trace()语句时,我的输出窗口显示如下所示:
4
8
13
17
23 etc...我正在寻找一种能够更密切地监控这一进程的方法,因此我使用了1, 2, 3, etc...。如果数字是重复的,这是可以的。我的预加载器的某些部分依赖于这些值,因此,如果能够从1到100之间获取它们而不跳过整数,那就太好了。
谢谢您抽时间见我。
发布于 2011-06-01 09:06:23
这是没有意义的-除非你的互联网连接加载恰好1%的文件在同一时间。
实际情况是,在接收到每个新的数据包后,它可以是基于下载速度的任何大小(假设在200到230kb之间)。每次接收到其中一个请求时,都会调度ProgressEvent.PROGRESS,正如您所预期的那样,这会增加加载的总百分比。
基本上,假设我们正在加载一个1000kb的文件,你的下载速度是100-150kbps。
每次调度ProgressEvent.PROGRESS时,函数中调用的每个trace()都将在接收到新的数据包时运行,因此:
100kb已加载-总共100个-跟踪10个
已加载120kb -总共220条-跟踪22条
已加载150kb -总计370条-轨迹37
等。
发布于 2011-06-02 04:21:27
您需要这些百分比的确切目的是什么?没有办法强迫URLLoader给你每1%的更新,但你可以伪造它。
如果你想估计你的下载速度,你可以用getTimer得到时间,以及每次你得到一个进度事件时从ProgressEvent到目前为止的下载量;一旦你有了它,你就可以比较新旧的值,并得到你下载速度的近似值。
你可以做类似的事情来平滑进度条,一旦你有了下载速度,你就可以在time上发布你的进度条,每一帧都会有一个小的更新,每次你得到一个ProgressEvent时,更新会更准确。
发布于 2011-06-01 09:06:13
你的帧率有多快?可能是它设置得太低,导致进程刷新频率较低。我会试着调高你的帧率或者主电影。
另一种常见的方法是通过补间两个间隔之间的值来模拟它,这样看起来会更平滑。但这听起来并不完全像你想要实现的目标。
https://stackoverflow.com/questions/6195184
复制相似问题