我有不同的div元素在同一視圖中有多個實例的問題。當我嘗試對它們進行初始化時,無論按照什麼順序,只出現這兩個元素中的第二個。backbone.js - 具有相同視圖的多個實例
這是我的視圖的代碼。
var BodyShapeView = Backbone.View.extend({
thingiview: null,
scene: null,
renderer: null,
model: null,
mouseX: 0,
mouseY: 0,
events:{
'click button#front' : 'front',
'click button#diag' : 'diag',
'click button#in' : 'zoomIn',
'click button#out' : 'zoomOut',
'click button#on' : 'rotateOn',
'click button#off' : 'rotateOff',
'click button#wireframeOn' : 'wireOn',
'click button#wireframeOff' : 'wireOff',
'click button#distance' : 'dijkstra'
},
initialize: function(name){
_.bindAll(this, 'render', 'animate');
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(15, 400/700, 1, 4000);
camera.position.z = 3;
scene.add(camera);
camera.position.y = -5;
var ambient = new THREE.AmbientLight( 0x202020);
scene.add(ambient);
var directionalLight = new THREE.DirectionalLight(0xffffff, 0.75);
directionalLight.position.set(0, 0, 1);
scene.add(directionalLight);
var pointLight = new THREE.PointLight(0xffffff, 5, 29);
pointLight.position.set(0, -25, 10);
scene.add(pointLight);
var loader = new THREE.OBJLoader();
loader.load("img/originalMeanModel.obj", function (object) {
object.children[0].geometry.computeFaceNormals();
var geometry = object.children[0].geometry;
console.log(geometry);
THREE.GeometryUtils.center(geometry);
geometry.dynamic = true;
var material = new THREE.MeshLambertMaterial({color: 0xffffff, shading: THREE.FlatShading, vertexColors: THREE.VertexColors });
mesh = new THREE.Mesh(geometry, material);
model = mesh;
// model = object;
scene.add(model);
});
// RENDERER
renderer = new THREE.WebGLRenderer();
renderer.setSize(400, 700);
$(this.el).find('.obj').append(renderer.domElement);
this.animate();
},
這裏是我創建實例
var morphableBody = new BodyShapeView({ el: $("#morphable-body") });
var bodyShapeView = new BodyShapeView({ el: $("#mean-body") });
任何幫助將非常感激。
在此先感謝。
感謝您的回覆@nikoshr這完全有道理!我現在遇到的唯一問題是,在加載函數中將模型添加到場景時,我收到此錯誤。 「未捕獲的TypeError:無法調用未定義的方法'add'this.scene.add(this.model); – TrueWheel
@TrueWheel JS中的這種歡樂。我修改了我的答案,那應該可以解決你的問題。 – nikoshr
謝謝!完美的作品和一個很好的解釋:) – TrueWheel