函数内部的变量不会传递给全局变量,无法访问它

时间:2019-04-22 22:35:46

标签: javascript function variables three.js gltf

我目前正在使用three.js,但我遇到了一些问题。 我必须实现如下所示的代码,这里的问题是我不能真正访问变量gltf.scene,因为它是另一个函数的代名词。

class Lamp extends Obj{
lamp;
constructor(){
    super();
    this.modelname = "Torch";

    this.model = "./models/" + this.modelname + "/" + "scene.gltf";

    //this.lamp = "teste";

    let self = this;
    this.loader = new THREE.GLTFLoader();
    this.loader.load(this.model, function(gltf){
        //let object = gltf.scene;
        gltf.scene.scale.set( .02, .02, .02 );
        gltf.scene.position.x = 0;
        gltf.scene.position.y = 0;
        gltf.scene.position.z = 0;
        gltf.scene.name = "teste";

        self.lamp = gltf.scene;
        //console.log(gltf);
        //scene.scene.add(gltf);

    });
    console.log(self.lamp);

}

getMesh() {
    //console.log(this.loader);
    //console.log(Lamp.lamp);
    return this.loader.scene;
}

}

您可以从评论中清楚地看到,我尝试了多种方法来绕过它,并实际上访问gltf.scene变量而不会丢失内部数据。

有人可以帮我吗?有点卡在那。谢谢!

0 个答案:

没有答案