Javascript 对象未在ThreeJS中使用JSONLoader加载:无法读取属性';可见';未定义的

Javascript 对象未在ThreeJS中使用JSONLoader加载:无法读取属性';可见';未定义的,javascript,json,three.js,Javascript,Json,Three.js,我正在尝试使用以下代码加载对象模型: var loader = new THREE.JSONLoader(); loader.load('js/spacecraft.js', modelLoadedCallback); function modelLoadedCallback(geometry) { spacecraft = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial(geometry.materials)); spac

我正在尝试使用以下代码加载对象模型:

var loader = new THREE.JSONLoader();
loader.load('js/spacecraft.js', modelLoadedCallback);

function modelLoadedCallback(geometry) {
   spacecraft = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial(geometry.materials));
   spacecraft.position.x = 0;
   spacecraft.position.y = 0;
   spacecraft.position.z = 0;
   mesh.add(spacecraft);
   scene.add( mesh );
}
尽管如此,在每次renderer.render(..)调用中,我都会遇到以下错误:

Uncaught TypeError: Cannot read property 'visible' of undefined
我不知道这个错误,因为在控制台中检查时,网格和航天器对象似乎都正确加载


我在JSONLoader中遗漏了什么吗?

您能给出该错误的行号/文件吗?它可能在宇宙飞船内部,或者在你代码中的其他行


查看js/spacer.js并找到正在尝试使用的.visible,例如
myObj.visible
if(myObj!=undefined){…},一个快速修复方法是使用
if(myObj!=undefined){…}
但是一个更普遍的解决办法是首先找出为什么myObj.visible没有定义。

我知道发生了什么:由于某种原因,
航天器.js
中的模型有一个空的
材质
数组。。。我需要找出原因,因为我使用NodeJS三个obj库将.obj转换为.JSON

Hi!这是个好主意,我以前试过,但不知怎么的,错误不断出现。错误发生在ThreeJS脚本文件中的renderer.render(..)调用中。这可能会对您有所帮助