对不起,问什么可能是一个非常简单的noob问题。骨干three.js视图绑定
我有一个视图,它在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行(线)的参考 - 这是第一个已知的渲染(初始化通话过程中),但此后不(在渲染调用中)。
如何处理这个,而不必依赖全球阵列上或在模型中存储信息的任何方向将不胜感激......
谢谢!
这很奇怪。一旦在'initialize()'中定义了'this._hudline',它应该是实例的一个属性,并且在该'hudContact'对象的生命周期中,即使在第一次调用render()后也会继续存在。其他地方的其他代码是否有可能篡改这些数据并破坏它? – jmk2142
嘿,谢谢你 - 至少证实我正在吠叫正确的树开始! –