该方法作为LoadingManager
在载入过程中的一个回调函数之一,用于标记一个载入对象的载入完成。
LoadingManager.itemEnd(url: string)
url
:表示载入对象的URL地址,它是一个字符串。该方法没有返回值。
LoadingManager
是three.js中的一个用于处理载入过程的对象,它提供了一个便捷的方式来监控三维场景模型中以及涉及到的其他资源(例如纹理、音频、视频等)的载入过程。在载入过程中,经常需要将已经成功载入的对象和出现错误的对象进行分别处理。这时,itemEnd()
就可以发挥作用。
调用itemEnd()
可以视为在给定的url
标记完成的载入对象。如果一个已经标记完毕的载入对象,它处于等待的其他载入对象载入完成状态,那么LoadingManager
就会执行其回调函数。当所有的载入对象都标记完成时,LoadingManager
将执行其“全部完成”的回调函数。
在以下示例中,我们首先定义了一个LoadingManager
对象,并设置其在载入过程中出现错误时的回调函数onError()
。接着,我们使用JSONLoader()
加载一个JSON格式的场景对象,并利用LoadingManager
的itemEnd()
方法对其进行标记。最后,在所有对象都完成载入后,LoadingManager
的全部完成回调函数onLoad()
将被执行。
var manager = new THREE.LoadingManager();
manager.onError = function(url) {
console.log('There was an error loading ' + url);
};
var loader = new THREE.JSONLoader(manager);
loader.load('models/scene.json', function(geometry, materials) {
var mesh = new THREE.Mesh(geometry, materials);
scene.add(mesh);
manager.itemEnd('models/scene.json');
});
manager.onLoad = function() {
console.log('All resources loaded');
};