2013-05-02 3 views
5

プロジェクトにロードするテクスチャファイルとモデルが非常に多いです。私はすべてがロードされている間、ステータスバーや何らかの読み込み画面を表示しようとしています。もし誰かが私にこのことをする方法に関する情報を与えることができたらそれはすばらしいでしょう。three.jsとjsonLoaderの使用中に読み込み画面を作成するには?

ありがとうございます!

答えて

8

あなたはロードプロセスを管理するには、このようなパターンを使用することができますが。その代わり

THREE.DefaultLoadingManager.onProgress = function (item, loaded, total) { 
    console.log(item, loaded, total); 
}; 

var manager = new THREE.LoadingManager(); 

manager.onStart = function(item, loaded, total) { 

    console.log('Loading started'); 

}; 

manager.onLoad = function() { 

    console.log('Loading complete'); 

}; 

manager.onProgress = function(item, loaded, total) { 

    console.log(item, loaded, total); 

}; 

manager.onError = function(url) { 

    console.log('Error loading'); 

}; 

var loader = new THREE.TextureLoader(manager); 

var texture = loader.load('texture.jpg', function (texture) { 

    texture.wrapS = texture.wrapT = THREE.RepeatWrapping; 
    texture.repeat.set(2, 2); 

}); 

var loader = new THREE.OBJLoader(manager); 

loader.load('file.obj', function(object) { 

    // your code 

}); 

three.js r.85

+0

これらの例は非常に混乱しています。 jsonLoaderに追加できるイベントや何かのようなものがありますか? – user2287949

+0

私は必要なのは、すべてのモデルとテクスチャの読み込みが完了したことを伝える方法だと思います。これらの例はあまりにも派手すぎて、実際に私に何が役に立つのかは分かりません。私は既に完成したプロジェクトを持っており、これらの例の1つに従うために多くの変更が必要です。 – user2287949

+0

モデルのロードが完了したときにコールバック関数が呼び出されたことに気付きました。すべてのコールバック関数が呼び出されると、すべてのロードが完了したことになります。私はこれを試してみるつもりです。 – user2287949

8

最低限必要なコードはこれだけですコンソールに印刷することができます。たとえば、 "loaded if == total"というレンダリングループを開始できます。 または/あなたは任意の指標を更新することができます。 (コードは例の1つです)

関連する問題