现在的位置: 首页 > 综合 > 正文

获取加载素材的进度

2016年12月11日 ⁄ 综合 ⁄ 共 746字 ⁄ 字号 评论关闭

问题:要加载一批素材,希望实时显示素材的加载进度。

解决方案:

1.串行加载,总进度是素材数量,总进度条按照素材数量等分n份,进度是已加载完成的素材数量。

这种按照素材个数等分的进度管理方式最简单,能大概显示进度信息。每一个素材加载完成进度向前走一步。缺点是进度条是跳跃显示,而且大素材和小素材加载时间不一,跳的频率不固定,串行导致全部素材加载完成时间长。

2.串行加载,总进度是素材数量,总进度条按照素材数量等分n份,每个素材检测加载进度。

在上一种方式基础上改进了,每个素材的加载进度实时显示出来,进度条会有一个连续增长的表现。缺点是大素材加载时进度条跑的慢,进度条不匀速增长,串行导致全部素材加载完成时间长。

3.并行加载,总进度是素材数量,总进度条按照素材数量等分n份,进度是已加载完成的素材数量。

和第一种方式一样。进度条增长是跳跃式的,只不过并行会大大缩短全部素材load的时间。

4.并行加载,总进度是所有素材的大小总和,检测每个素材加载进度,当前进度是所有已加载素材的当前加载大小之和。

这样能保证加载进度是真实的进度,最准确,表现效果最好。前几种方式按数量划分,这种方式按照素材大小展示进度,一般网速稳定的情况下下载多个大小不一的素材这种方式的展现效果最好。需要提前知道每个素材的总大小。


在实际开发中一般建议同时保持2个左右的下载链接,过多的链接消耗大量网络资源,可能导致flash奔溃。而且如果小文件过多,发起的链接越多下载速度越慢。

这种优化已经在第三方工具中做好了,一般使BulkLoader或者LoaderMax之类的工具。


参考关于优化加载素材的一文:

Flash应用效率优化启示录(缓存篇)http://www.iamsevent.com/wap.asp?act=View&id=48

抱歉!评论已关闭.