2016-03-10 5 views
3

Привет, У меня возникли проблемы с созданием загружаемого сообщения при загрузке текстуры для сцены. сообщение onProgress console.log запускается только при полной загрузке текстуры, а не во время.onProgress загрузка текстур с помощью Three.js

manager = new THREE.LoadingManager(); 

manager.onProgress = function() { 
    console.log('loading'); 
}; 
manager.onLoad = function() { 
    console.log('loaded'); 
}; 
manager.onError = function() { 
    console.log('there has been an error'); 
}; 

var textureLoader = new THREE.TextureLoader(manager); 
var planetTexture = textureLoader.load('/assets/images/planet/{{page.planet}}/{{page.planet}}.jpg'); 

Я посмотрел через примеры, но не могу понять, как они делают это в данном примере obj loader

ответ

0

onLoad обратного вызова будет вызываться один раз для каждого элемента в менеджере загрузчика. Поэтому, если вы загружаете одну текстуру, она будет вызывать один раз. Вы можете видеть это в this fiddle.

Чтобы использовать функцию обратного вызова вы можете передать его в качестве второго аргумента при вызове load метода:

loader.load(
    url, 
    onLoad 
); 

Это означает, что вы не можете видеть прогресс для отдельного изображения, а только для мониторинга прогресса при загрузке несколько текстуры с тем же менеджером загрузчика.

+0

Привет, я попробовал ваш код, и у меня все еще есть такая же проблема. – user3704608

+0

@ user3704608 Я обновил свой ответ – Wilt

+0

Я думаю, что он хочет прогресса на одной текстуре, насколько я вижу, LoadingManager вызывает только функцию прогресса после завершения каждого отдельного элемента в менеджере. – 2pha

Смежные вопросы