【发布时间】:2018-07-25 14:25:56
【问题描述】:
所以,我正在尝试 three.js,并尝试加载我从 Ark Survival Evolved (Raptor.dae) 找到并下载的 .dae 文件。
我拼凑了一个 html 页面来创建一个带有 raptor 文件、两个灯和一个地板的 webgl 场景;我拼凑了一个烧瓶服务器来提供 html 和资产(直接从 Windows 资源管理器打开 html 会导致我无法弄清楚如何修复的跨源错误,所以我制作了 Web 服务器)。
我知道一切正常,直到它尝试加载这个特定文件,因为我可以让 three.js 附带的演示精灵正确地提供服务。
这是加载 raptor 文件的代码部分。
var raptor
// loading manager
var loadingManager = new THREE.LoadingManager( function() {
scene.add( raptor );
} );
// collada
var loader = new THREE.ColladaLoader( loadingManager );
loader.load( './static/models/Raptor/Raptor.dae', function ( collada ) {
raptor = collada.scene;
raptor.scale.set(0.1,0.1,0.1);
} );
loader.setCrossOrigin( '' );
这是我得到的错误。
Navigated to http://127.0.0.1:5000/raptor
THREE.WebGLRenderer 89
THREE.ColladaLoader: DOMParser: 4.136962890625ms
XHR finished loading: GET "http://127.0.0.1:5000/static/models/Raptor/Raptor.dae".
load @ three.js:30874
load @ ColladaLoader.js:25
(anonymous) @ raptor:47
THREE.ColladaLoader: File version 1.4.1
THREE.ColladaLoader: Parse: 0.06298828125ms
THREE.ColladaLoader: Build: 0.06689453125ms
Uncaught TypeError: Cannot read property 'childNodes' of undefined
at getElementsByTagName (ColladaLoader.js:62)
at parseScene (ColladaLoader.js:3333)
at THREE.ColladaLoader.parse (ColladaLoader.js:3463)
at Object.onLoad (ColladaLoader.js:27)
at XMLHttpRequest.<anonymous> (three.js:30794)
getElementsByTagName @ ColladaLoader.js:62
parseScene @ ColladaLoader.js:3333
parse @ ColladaLoader.js:3463
(anonymous) @ ColladaLoader.js:27
(anonymous) @ three.js:30794
XMLHttpRequest.send (async)
load @ three.js:30874
load @ ColladaLoader.js:25
(anonymous) @ raptor:47
这里是错误中提到的两个文件的链接。
三个.js 存储库中的elf.dae
Raptor.dae 在 Google 云端硬盘上
我不知道这个文件和elf文件有什么区别。我已经在 Notepad++ 中打开并阅读了它们,但我还没有弄清楚究竟是什么导致了挂起。
任何帮助或指导将不胜感激。
【问题讨论】:
标签: javascript three.js xmlhttprequest collada