我正在尝试使用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
这是因为它最初是通过清单工作而不是立即考虑所有内容吗?
在预加载器中显示这些结果之前检查进度是否正确是确保自行排序的好方法吗?
答案 0 :(得分:0)
基本上,清单只是提供一种处理一批资产的便捷方式,而无需您自己循环访问它们。看看代码,它几乎与loadFile方法相同,但循环遍历对象数组。因此,在更好地计算进度方面,它没有做任何花哨的事情。
http://createjs.com/Docs/PreloadJS/files/.._src_preloadjs_LoadQueue.js.html#l898
你有两个选择,但要让它看起来更准确。