我正在为3D对象创建一个类。我正在使用jQuery进行事件记录,使用three.js进行WebGL。
我的课程定义为:
function Obj(filename) {
this.loadMesh(filename);
};
Obj.prototype.loadMesh = function(filename) {
var loader = new THREE.PLYLoader();
var geo;
var mesh;
loader.load(filename, function ( geometry ) {
geo = geometry;
var material = new THREE.MeshStandardMaterial( { color: 0x0055ff } );
mesh = new THREE.Mesh( geometry, material );
mesh.position.y = -0.25;
mesh.rotation.x = -Math.PI / 2;
mesh.scale.multiplyScalar( 0.04 );
});
this.geometry = geo;
this.mesh = mesh;
};
从Scene类调用此类:
function Sce() {
this.scene = new THREE.Scene();
this.camera = new THREE.PerspectiveCamera(45, 1, 0.1, 10000);
this.scene.add(this.camera);
this.light = new THREE.PointLight();
this.light.position.set(-256, 256, -256);
this.scene.add(this.light);
this.renderer = new THREE.WebGLRenderer();
this.obj3d = new Obj('file.ply');
this.scene.add(this.obj3d.mesh);
};
从jQuery ready开始调用它:
$(document).ready(function () {
scene = new Sce();
});
但是变量this.geometry和this.mesh没有定义,除非我在它们上放置了一个带有Firebug的断点。
我认为这可能是一个范围问题,但我无法修复错误,有人知道可能是什么问题吗?