threeJS jsonLoader - “无法读取未定义的属性'length'”
threeJS jsonLoader - "Cannot read property 'length' of undefined"
我正在创建一个场景,可以保存然后加载。
为了保存场景,我序列化所有对象(及其数据)。对于网格,其工作原理很简单:
var json = {};
json.objectsInScene = [];
for (var i = 0; i < collectionOfObjects.length; i++)
{
json.objectsInScene.push(collectionOfObjects[i].toJSON();
}
然后,我尝试将它们加载回去,其工作原理如下:
var jsonObject = JSON.parse(json);
for (var i = 0; i < jsonObject.objectsInScene.length;i++){
var loader = new THREE.JSONLoader();
var geometry = loader.parse(jsonObject.objectsInScene[i]);
var mesh = new THREE.Mesh(geometry.geometry, new THREE.MeshBasicMaterial());
this.scene.add(mesh);
}
当我执行此代码时。我收到以下错误:
无法读取未定义的属性"长度"
14990行的三.js。
这是这一行:
zLength = vertices.length;
在开发工具中检查它时,我必须同意:vertices.length 是 undefined
.事实上,它被分配了几行:
var vertices = json.vertices;
但 json 对象仅包含以下属性:
geometries: Array[15]
materials: Array[15]
metadata: Object
object: Object
我做错了什么?哪里出了问题,或者我该怎么做才能解决此问题?
R73
也许你应该使用THREE。对象加载
器for (var i = 0; i < jsonObject.objectsInScene.length;i++){
var loader = new THREE.ObjectLoader();
var obj= loader.parse(jsonObject.objectsInScene[i]);
this.scene.add(obj);
}
相关文章:
- JQuery `length`属性工作不正常.为什么?
- 可以't将.length属性与IronJS和ArrayObject一起使用
- 文本框's的length属性在JQuery中从不返回0
- 在JavaScript中,是否使用数组's的length属性生成整数数学
- AngularUI-Bootstrap的Typeahead无法读取“undefined”的“length”属性
- pdfmake.js uncatch TypeError:无法读取 null 的属性“length”
- 无法读取 javascript for loop 中 null 的属性“length”
- threeJS jsonLoader - “无法读取未定义的属性'length'”
- 数组 .length 属性为 JavaScript 中的 document.getElementsByClassName
- 在for循环的每一次迭代中都会计算.length属性
- 谁能解释为什么我得到这个错误在Javascript?[无法读取属性'length'未定义)
- .substr()内部的.length属性更改
- TypeError:不能读取属性'length'的定义
- 无法读取property 'length'属性未定义的
- getElementsByTagName -无法读取属性'length'的定义
- 被'函数',Function.length是Function或Function.prototype的属性
- js无法加载材料(无法读取属性'length'未定义)
- 如何重写String的length属性?
- 哪些对象在JavaScript有一个.length属性?(又名为什么下划线_.每个都把我的函数对象当作数组?)
- 函数的length属性