Я пытаюсь получить доступ к дочернему объекту sole
в сцене. Я могу получить доступ к var sole
внутри функции загрузчика, используя obj
, но мне нужно получить доступ к нему из-за пределов функции загрузчика.Three.js - доступ к дочернему объекту в сцене
Here's the working code и here's the json model file.
я могу получить доступ к нему внутри погрузчика, например:
var loader = new THREE.ObjectLoader();
loader.load("models/shoe4.json", function (obj) {
scene.add (obj);
scene.rotation.y = Math.PI/1;
scene.position.y = -5;
scene.position.z = -24;
var sole = obj.getObjectByName("sole", true);
sole.position.y = -5;
});
Но мне нужно сделать что-то вроде этого:
var loader = new THREE.ObjectLoader();
loader.load("models/shoe4.json", function (obj) {
scene.add (obj);
scene.rotation.y = Math.PI/1;
scene.position.y = -5;
scene.position.z = -24;
});
var sole = obj.getObjectByName("sole", true);
sole.position.y = -5;
В принципе мне нужно поставить его свою собственную функцию для последующего использования использовать.
Я также попытался
var sole = scene.getObjectByName("sole", true);
sole.position.y = -5;
Который дал мне ошибку:
Uncaught TypeError: Cannot read property '
getObjectByName
' of undefined
Как получить доступ к объекту sole
из любой точки мира? Просто объявление var obj,
не работает.
Вы пытались _define_ 'sole' вне функция загрузчика, но _assign_ внутри функции загрузчика? – Passerby
Да. У меня есть куча vars в первой строке 'var sole, obj'etc, но если я попытаюсь получить доступ к' sole = obj.getObjectByName ("sole", true); 'из-за пределов функции загрузчика я все еще получаю ошибку 'Uncaught TypeError: Невозможно прочитать свойство 'getObjectByName' неопределенного'. Кажется странным, можно подумать, что это должно работать отлично. –
@AgenZebra Нет, попробуйте ** назначить ** 'sole' _inside_ функцию загрузчика, а не снаружи. – Passerby