我在訪問事件邊界外的對象時遇到了問題。如果我把對象放在一個數組中,並檢出該數組,數組也是空的,但在事件範圍內它已滿。我需要知道如何訪問事件範圍外的對象。THREE.js OBJ加載器對象
for (var i = 0; i < 19; i++){
var loader = new THREE.OBJMTLLoader();
loader.addEventListener('load', function (event) {
var tree = event.content;
myWorld.setWorldTreePosition(multiplier);
tree.position.y = 0;
tree.position.x = myWorld.myTreePosition.position.x;
tree.position.z = myWorld.myTreePosition.position.z;
tree.rotation.x = -(Math.PI/2);
tree.scale.set(10,5,5);
scene.add(tree);
collidableMeshList2.push(tree);
tree.castShadow = true;
//collidableMeshList.push(tree);
multiplier += 500;
console.log(collidableMeshList2); // here it is full of trees.
}
);
loader.load('obj/Palm_Tree.obj', 'obj/Palm_Tree.mtl');
//outside this all becomes empty.
console.log(collidableMeshList2); // here is list is empty but I don't know why.
您至少應該將循環的文件行移到它外面。您可以將許多偵聽器添加到一個加載器中,但是如果您在循環中重新定義該對象,則每次都會替換它。用這個更新這個問題,這樣你可以得到更好的答案。 – recluze