我试图访问场景中的子对象sole
。我可以使用obj
访问加载函数中的var sole
,但我需要从加载函数外部访问它。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
是的。我在第一行'var sole,obj'etc有一堆变量,但是如果我尝试从loader函数的外部访问'sole = obj.getObjectByName(“sole”,true);',我仍然得到错误'Uncaught TypeError:无法读取未定义的属性'getObjectByName'。似乎很奇怪,人们会认为这应该是完美的。 –
@AgenZebra不,尝试**分配**'唯一'_嵌入加载函数,而不是外部。 – Passerby