對不起,問什麼可能是一個非常簡單的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
嘿,謝謝你 - 至少證實我正在吠叫正確的樹開始! –