很抱歉问什么可能是一个非常简单的菜鸟问题。
我有一个视图,它在 Three.js 渲染器中创建几何图形 - 该视图第一次成功渲染。但是,对渲染函数的后续调用会失败,并出现未知的引用错误。
我试图在视图而不是模型中存储对渲染几何的引用,因为模型在多个浏览器(实际上是服务器)之间共享 - 使用 Backboneio.js
视图如下所示:
StarSystem.hudContact = BackboneIO.View.extend({
el: '',
model: '',
initialize: function(options) {
var material = new THREE.LineBasicMaterial({
color: 0xFFFFFF,
});
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(0, 0, 0));
geometry.vertices.push(new THREE.Vector3(0, 0, ((camera[0].position.z - this.model.get('zPos')) / 10000)));
var line = new THREE.Line(geometry, material);
line.position.x = ((camera[0].position.x - this.model.get('xPos')) / 10000);
line.position.y = ((camera[0].position.y - this.model.get('yPos')) / 10000);
line.position.z = 0;
line.Name = this.model.get('Name');
this._hudLine = hudScene.add(line);
this.model.bind('update', this.render, this);
},
render: function(){
console.log(this._sceneLine.position.x);
this._hudLine.position.x = ((camera[0].position.x - this.model.get('xPos')) / 10000);
this._hudLine.position.y = ((camera[0].position.y - this.model.get('yPos')) / 10000);
this._hudLine.position.z = 0;
}
});
因此,可以看出,我试图在 this._hudLine 中存储对行(行)的引用 - 这在第一次渲染时(在初始化调用期间)是已知的,但在此后(在渲染调用中)不知道。
任何关于如何处理这个问题而不必依赖全局数组或在模型中存储信息的方向将不胜感激......
谢谢!