Typescript 和 ThreeJS,添加到加载器内部的场景中



我有以下代码:

export class LandingPageComponent implements OnInit {
scene: THREE.Scene;
(...)
ngOnInit() { 
(...)
this.scene = new THREE.Scene();
(...)
var loader = new THREE.JSONLoader();
loader.load("../../assets/fire_lion.json",function ( obj ) {
this.scene.add( obj ); // The line that's giving me trouble
});

场景已定义并正常工作,但是当我尝试运行此代码时,我收到一个错误,指出场景未声明。这是有道理的,因为"this"不再引用类,但是我如何将对象添加到场景中呢?

提前感谢!

PS:使用对象加载器只是给了我一条错误消息,说我应该使用JSONLoader。

因为这在加载回调中已经改变。需要调用绑定或使用 TypeScript 语法来转译绑定调用。

loader.load("../../assets/fire_lion.json",function ( obj ) {
this.scene.add( obj );
}.bind(this)); // bind here

loader.load("../../assets/fire_lion.json", ( obj ) => {
this.scene.add( obj );
}));

最新更新