2011-12-05 14 views
0

收到这个错误在我的JavaScript控制台(在Chrome)与COLLADA对象我试图用一个基本的加载程序添加。它特别来自“scene.add(object)”块。其他一切似乎都很好。加载对象的代码如下scene.add(对象)来创建一个“遗漏的类型错误:无法读取的未定义的属性‘长’”

var ltable; 
var furnLoad = new THREE.ColladaLoader(); 

function addlt(){ 
     furnLoad.load('../Models/Furniture/foldingLongTable.dae', function(collada){ 
       ltable = collada.scene; 
       ltable.scale.x=ltable.scale.y=ltable.scale.z=1; 
       ltable.updateMatrix(); 
       ltable.position.x=ltable.position.z=ltable.position.y=0; 
     }); 
     scene.add(ltable); 
} 

该函数在页面的初始化过程中调用,否则工作正常。该网页可以发现here(没有这种表的版本具有相同的URL除了一个4而不是3月末),和特定对象here

什么是推荐的方式来获得过去的这个错误?

+0

是否有机会传递给furnLoad.load匿名函数不叫?这会导致ltable永远不会被设置。你应该尝试声明ltable的价值。 –

+0

潜在可能。我刚刚评论过“scene.add(ltable)”;“并添加了一条警告:“if(!ltable){alert(”No table“)};”查看。没有警告被抛出,所以我猜测它已经正确设置。 – rougegoat

+0

那么恐怕你不得不等待有关callada或javascript的更多知识的人,因为我既不知道。 :) –

回答

0

解决。 Collada装载机只是憎恨成为任何功能的一部分,并不会在他们的工作。所以修复是让他们在功能之外,他们工作得很好。

+0

这是什么意思?你是否必须在全球范围内运行它们? – msfeldstein

0

回答这个问题是由于回调函数的scene.add()被外界的位置。它在回调触发前被调用,因此未定义的错误。

相关问题