Javascript变量未定义,直到断点放在firebug中

时间:2016-10-24 12:46:42

标签: javascript jquery three.js

我正在为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的断点。

我认为这可能是一个范围问题,但我无法修复错误,有人知道可能是什么问题吗?

0 个答案:

没有答案