Я пытаюсь загрузить внешнюю модель JSON в сцену и попытаться поместить ее значение в переменную с именем head, и, следовательно, хочу добавьте его на сцену.Как назначить значение локальной переменной переменной функции [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);
, что я хочу сделать, это загрузить модель JSON и поместить все сетки переменной головы функции, что я нахожусь в данный момент. Однако, когда я бегу приведенный выше код показывает ошибку типа в firebug. Модель загружается успешно, но ошибка аналогична
TypeError: a is undefined Three.js Line 55
Что мне делать, чтобы исправить эту ошибку?
Вы бы не проблема, если вы двигаетесь this.mesh.add (this.head) ; внутри функции вместо того, чтобы возвращать переменную головы. Что происходит, так это то, что голова включена в функцию обратного вызова и выходит из области действия при возврате, поэтому у вас нет доступа к ней. – gaitat
, когда я сделать это снова бросает ошибку говоря TypeError: это не определено Line 215 он не понимает этого внутри этой функции обратного вызова – monk
то, что вам нужно сделать, это добавить «сферу уаг = это;» как раз перед вызовом loader.load, а затем используйте область переменной внутри обратного вызова. то есть. scope.mesh.add (head), как внутри обратного вызова, «это» было изменено. – gaitat