Javascript在映射中存储内部对象
如何将网格正确存储到贴图中?在调用addMesh时,确保map[key](this.meshMap)是一个对象。请注意,这与说贴图本身是对象不同。如果map[key]不是对象,则它不能具有属性(例如位置) 您可以尝试以下操作:Javascript在映射中存储内部对象,javascript,map,three.js,Javascript,Map,Three.js,如何将网格正确存储到贴图中?在调用addMesh时,确保map[key](this.meshMap)是一个对象。请注意,这与说贴图本身是对象不同。如果map[key]不是对象,则它不能具有属性(例如位置) 您可以尝试以下操作: this.meshMap = new Object(); this.addMesh = function(key,url) { var map = this.meshMap; // redefinition
this.meshMap = new Object();
this.addMesh = function(key,url)
{
var map = this.meshMap; // redefinition
var loader = new THREE.JSONLoader();
loader.load( url, function(geometry)
{
map[key] = new THREE.Mesh(geometry, material); // object to store
scene.add(map[key]); // Works
});
map[key].position = new THREE.Vector3(0, -10, 0); // ERROR: Null
}
我该怎么做呢?我不明白为什么我会得到一个空指针。如果(map[key])map[key]。position=new THREE.Vector3(0,-10,0);好的,我这样做了,if语句没有运行。意思是对象返回为空?在将map[key]设置为新网格后,也可以将线移动到块中。因为这部分是事件驱动的,所以它只会在给它一个值之后发生,而现在它会在之前发生。是的,我可以做到。但我需要它在创建网格后访问网格。
this.meshMap = new Object();
this.addMesh = function(key,url)
{
var map = this.meshMap; // redefinition
var loader = new THREE.JSONLoader();
loader.load( url, function(geometry)
{
map[key] = new THREE.Mesh(geometry, material); // object to store
map[key].position = new THREE.Vector3(0, -10, 0); // ERROR: Null
scene.add(map[key]); // Works
});
}