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
参数,则返回空字符串。