외부 JSON 모델을 장면에로드하고 해당 값을 head라는 변수에 넣으려고하므로 결과적으로 그것을 현장에 추가하십시오. 나는 내가 JSON 모델을로드하고 난 현재 오전 함수의 헤드 변수에 모든 메쉬를 넣어 뭘하려는이함수의 변수에 로컬 변수 값을 할당하는 방법 [Three.js] JSON 로더
var loader = new THREE.JSONLoader();
this.head = loader.load("eagle2.js", function(geometry) {
var material = new THREE.MeshPhongMaterial(), head;
head = new THREE.Mesh(geometry, material);
head.scale.set(200, 200, 200);
head.position.y = 0;
return head;
});
this.mesh.add(this.head);
처럼, IS 무슨 짓을
. 내가 실행하지만 위의 코드는 방화범 입력 오류를 보여줍니다. 모델로드가 성공적이지만 오류는 다음과 같습니다.
TypeError: a is undefined Three.js Line 55
이 오류를 해결하려면 어떻게해야합니까?
대신 그렇게 바로 사용이 다음과 같아야합니다, 콜백 함수에서 서버 및 반환 데이터에 대한 비동기 호출을 ; head 변수를 반환하는 대신 함수 내부에서 호출합니다. 무슨 일이 일어나고 있는지는 콜백 함수 내부에서 머리가 가려져 돌아 왔을 때 범위를 벗어나므로 그곳에 액세스 할 수 없다는 것입니다. – gaitat
이렇게하면 다시 오류가 발생합니다. TypeError : this is undefined Line 215 콜백 함수 – monk
에서 "var scope = this;"를 추가하면됩니다. loader.load를 호출하기 직전에 콜백 내부에서 변수 범위를 사용하십시오. 즉. scope.mesh.add (head) 콜백 안에 "this"가 재정의 된 것처럼. – gaitat