2013-05-02 37 views

Odpowiedz

8

Można użyć wzoru podobnego do zarządzania procesem ładowania:

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

te przykłady są takie mylące. Czy jest jak wydarzenie lub coś, co mogę dodać na moim jsonLoader, aby dowiedzieć się, jak daleko jest dalej? – user2287949

+0

Zgaduję, że wszystko, czego potrzebuję, to sposób, aby powiedzieć, kiedy kończy się ładowanie wszystkich moich modeli i tekstur. Te przykłady są zbyt fantazyjne, nie mogę powiedzieć, co jest dla mnie przydatne. Mam już gotowy projekt i musiałbym bardzo dużo zmienić, aby wykonać jeden z tych przykładów. – user2287949

+0

Po prostu zauważyłem, że funkcja wywołania zwrotnego jest wywoływana po zakończeniu ładowania modelu, więc zgaduję, że po wywołaniu wszystkich moich funkcji zwrotnych oznacza to, że wszystko zostało zakończone. Mam zamiar spróbować. – user2287949

8

Minimalny wymagany kod jest właśnie to:

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

Zamiast drukowania na konsolę możesz na przykład uruchomić pętlę renderowania "jeśli załadowano == total". Lub/I możesz zaktualizować dowolne wskazanie ładowania. (Kod pochodzi z jednego z przykładów.)

Powiązane problemy