2017-05-19 17 views
0

ローディングの進捗状況を定期的に更新するためにモデルをロードするときに、どのようにしてローディングアイコンを作成できるかを確認するにはどうすればよいですか?私が見つけることができるすべてのトーナリーをたどってきましたが、すべての答えで、onProgressメソッドはロードが終了するとすぐに1回だけ起動します。THREE.JS Loader onProgressは、ロード完了後に1回だけ起動します。

typescriptですマイローダコード:

// Load manager 
private manager = new THREE.LoadingManager(); 

// Set up loading manager (in constructor of class) 
this.manager.onProgress = function (item, loaded, total) { 
    console.log(item, loaded, total); 
}; 


// Load OBJ File from Server 
private loadFile(path) { 
    let loader = new THREE.OBJLoader(this.manager) 
    loader.load(path, (obj)=>{ 
     this.model = obj; 
     this.boundingBox = new THREE.BoxHelper(obj) 
     this.scene.add(this.model); 
    }); 
} 

ログ:

http://localhost:5000/api/file/largeModels/z3.obj 1 1 

TEモデルがロードされた後、私はこれだけのログを取得します。これをどうすれば解決できますか?

答えて

1

次のコードを試してください。

// Load manager 

    private manager = new THREE.LoadingManager(); 

    // Set up loading manager (in constructor of class) 
    this.manager.onProgress = function (item, loaded, total) { 
     console.log(item, loaded, total); 
    }; 


    // Load OBJ File from Server 
    private loadFile(path) { 
     let loader = new THREE.OBJLoader(this.manager) 
     loader.load(path, (obj)=>{ 
      this.model = obj; 
      this.boundingBox = new THREE.BoxHelper(obj) 
      this.scene.add(this.model); 
     },this.onProgress, this.onError); // onProgress, onError added.... 
    } 

    private onProgress (xhr) { 
     if (xhr.lengthComputable) { 
     var percentComplete = xhr.loaded/xhr.total * 100; 
     console.log(Math.round(percentComplete) + '% downloaded'); 
     } 
    }; 

    private onError (xhr) { 
     console.log("Will call when error occure."); 
    }; 
+0

チャームのように働いた。どうも。 OBJローダーの作動荷重に似た方法があるかどうか知っていますか?以来、私はダウンロードのためのプログレスバーを持っていますが、ロードされていません... – Jason

+0

あなたはどのエラーですか? – spankajd

+0

私はエラーになりません。ダウンロードが100%に達した後の大型モデルでは、モデルがロードされて表示されている間もまだ休止しています。進歩を見ることはできますか? – Jason

関連する問題