CreateJS的PreloadJS进度事件不准确
CreateJS' PreloadJS progress event inaccurate
我正在尝试使用 CreateJS 套件中的 PreloadJS 类加载一些资产,但是当第一个进度事件触发报告时e.loaded
并e.progress
为0.83
,然后数字在接下来的几个事件中减少,然后最终再次上升。
t.assets = new createjs.LoadQueue();
t.assets.installPlugin(createjs.Sound);
t.assets.setMaxConnections(10);
t.assets.addEventListener("progress", function(e){
console.log(e.loaded);
});
t.assets.addEventListener("complete", function(){
callback();
});
t.assets.loadManifest([
{ id: 'facebook_btn', src: 'img/ingame/facebook_white_btn.png' },
{ id: 'twitter_btn', src: 'img/ingame/twitter_white_btn.png' },
{ id: 'embed_btn', src: 'img/ingame/embed_white_btn.png' },
]);
我在控制台中得到这些结果
0.8333333333333334
0.7142857142857143
0.625
0.5555555555555556
0.5
0.45454545454545453
0.4984983736293216
0.5894074645384125
0.6363636363636364
0.6663361591119469
0.7572452500210378
0.8261679748749072
0.9170770657839982
0.9390634318392196
1
这是因为它最初通过清单工作并且没有立即考虑所有内容吗?
在预加载器中显示这些结果之前,检查进度是否正确是确保其自行整理的好方法?
从本质上讲,清单只是提供了一种方便的方式来处理一批资产,而无需您自己循环访问它们。看看代码,它与 loadFile 方法几乎相同,但循环遍历对象数组。因此,在更好地计算进度方面,它并没有做任何花哨的事情。
http://createjs.com/Docs/PreloadJS/files/.._src_preloadjs_LoadQueue.js.html#l898
不过,您有几个选项可以使其看起来更准确。
- 如果您加载的内容不多,并且只需要几秒钟,您可能只想不使用进度事件。相反,您可以只捕获加载错误或其他挂断 。
- 如果您正在加载很多内容并且可能需要一些时间,请考虑在显示进度之前等待几秒钟。这给了清单时间来添加足够多的东西,它应该朝着积极的方向向 1 移动。
相关文章:
- JsFiddle上的鼠标事件不起作用
- Jquery.点击事件不'更改事件后无法工作
- 链接上的IE10 jquery句柄单击事件不起作用
- jQuery加载完成事件不起作用
- 模型更改事件不会启动
- 覆盖单击事件不起作用
- onclick事件不'不要在萤火虫或铬中点火
- OnsenUI中的ng点击事件不会在Android模拟器上触发
- 单击事件不起作用
- xPages标签onclick事件不'不要在空白处工作
- jquery点击事件不会在iPhone中的按钮元素上触发
- extjs关闭事件不'不要开火
- jQuery.on-click事件不会发生
- 为什么body元素上的onclick事件不起作用
- 追加Jquery后的Binding Click事件不起作用
- chrome中的onmouseover(下拉选项标记)事件不起作用-php,javascript
- jQuery调用keyup事件不起作用
- MS Dynamics CRM 2016-addOnKeyPress事件不工作
- 选择选项淘汰赛事件不起作用
- CreateJS的PreloadJS进度事件不准确