LoadingManager.resolveURL() 方法用于解析 URL 并返回一个完整的 URL。它可以用于将相对路径转换为绝对路径。
LoadingManager.resolveURL( url: String ): String
url:待解析的 URL。可以是相对路径或绝对路径。解析后的 URL,如果传入的 url 参数不合法,则返回空字符串。
const textureLoader = new THREE.TextureLoader();
const loadingManager = new THREE.LoadingManager();
loadingManager.setURLModifier((url) => {
// 将所有请求发送至代理服务器
return 'https://proxy-server.com/' + url;
});
const texture = textureLoader.load('test.png', (loadedTexture) => {
console.log('纹理加载完成:', loadedTexture);
}, (xhr) => {
console.log('正在加载纹理:', xhr.loaded, xhr.total);
}, (error) => {
console.error('纹理加载失败:', error);
}, loadingManager);
在上面的示例中,我们使用了 LoadingManager.resolveURL() 方法来将纹理的相对路径转换为绝对路径,并将其请求发送至代理服务器。我们首先创建了一个 TextureLoader 对象和一个 LoadingManager 对象,然后将 setURLModifier() 方法应用至 loadingManager 对象,以修改默认的 URL 加载器。
在调用 load() 方法时,我们将 loadingManager 对象传递给了 textureLoader 对象,并用 resolveURL() 方法将相对路径转换为绝对路径。最后,我们可以利用 onLoad()、onProgress() 和 onError() 回调函数来监控纹理的加载过程。
url 参数为绝对路径,则直接返回该路径。url 参数,则返回空字符串。