おそらく非常に単純な初心者の質問であることを尋ねて申し訳ありません。
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 に格納しようとしています。これは最初のレンダリング (初期化呼び出し中) で認識されますが、その後 (レンダリング呼び出しでは認識されません)。
グローバル配列に依存したり、モデル内に情報を保存したりすることなく、これを処理する方法についての指示は大歓迎です...
ありがとう!