0

CreateJS スイートの PreloadJS クラスを使用していくつかのアセットを読み込もうとしていますが、最初の進行状況イベントがレポートe.loadede.progressas を起動すると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

これは、最初にマニフェストを処理していて、すぐにすべてを考慮していないためですか?

これらの結果をプリローダーに表示する前に、進行状況が正しい方向に進んでいることを確認することは、それ自体が整理されていることを確認する良い方法ですか?

4

1 に答える 1

0

基本的に、マニフェストは、自分でループすることなくアセットのバッチを処理する便利な方法を提供するだけです。コードを見てください。これは loadFile メソッドとほぼ同じですが、オブジェクトの配列をループします。そのため、進行状況をより適切に計算するという点で、派手なことは何もしていません。

http://createjs.com/Docs/PreloadJS/files/.._src_preloadjs_LoadQueue.js.html#l898

ただし、より正確に見えるようにするためのオプションがいくつかあります。

  1. 読み込みが少なく、数秒しかかからない場合は、progress イベントを使用したくない場合があります。代わりに、読み込みエラーやその他のハングアップをキャッチできます。
  2. たくさんのものをロードしていて、時間がかかる場合は、進行状況を表示する前に数秒待つことを検討してください。これにより、マニフェストが 1 に向かって正の方向に移動するのに十分なものを追加する時間が与えられます。
于 2013-11-10T15:06:33.443 に答える