繁体   English   中英

如何修复 three.js“url.lastIndexOf 不是函数”错误?

[英]How do I fix the three.js "url.lastIndexOf is not a function" error?

我目前正在在 Three.js r105 中加载 gLTF。 加载文件后,我尝试在加载后更改 url,看看我是否可以在加载后更改它。 这是我的问题开始了。

首先,我只是尝试在“onLoad”中更改 url。 然后我尝试在我的 gltf.scene.traverse 中更改它。 那也不起作用,所以我将输入 function 作为 url 参数。

var loader = new THREE.GLTFLoader().load( function () {
window.setTimeout(`this = 'gmtk.glb', alert('It changed');`, 5000);
    **return "sword_1.glb";**
}, 

我希望我的 gLTF 至少会出现,但我的整个场景都是黑色的。 在控制台中我有 1 个错误说:

three.js:38135 Uncaught TypeError: url.lastIndexOf is not a function
    at Object.extractUrlBase (three.js:38135)
    at GLTFLoader.load (GLTFLoader.js:40)
    at Kube.js:31

您正在尝试将 HTTP URL 添加到 GLTF 加载程序,这是不允许的; 尝试转换为 BLOB

在新的 BLOB(Response.data) 中,您可以将 response.data 替换为旧的 URL

   const url = window.URL.createObjectURL(new Blob([response.data]));
   this.loaders.gltfLoader.load(url , (file)=>{
       
   });

在这里,加载器将完美加载而不会出错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM