2011-12-05 2 views
0

콜라주 객체가있는 자바 스크립트 콘솔에서 오류가 발생했습니다. 기본 로더를 추가하려고합니다. 특히 장면의 "추가 (객체)"덩어리에서 오는 것입니다. 다른 모든 것들이 잘 작동하는 것 같습니다.scene.add (object)가 "Uncaught TypeError : 정의되지 않은 'length'속성을 읽을 수 없습니다."

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 (이 테이블이없는 버전은 끝에 3 대신에 4를 제외하고 동일한 URL을가집니다)과 특정 오브젝트 here을 찾을 수 있습니다.

이 오류를 극복하기 위해 권장되는 방법은 무엇입니까?

+0

furnLoad.load로 전달 된 익명 함수가 호출되지 않을 가능성이 있습니까? 그것은 결코 설정할 수없는 톱밥을 일으킬 것입니다. 당신은 ltable의 가치를 주장하려고 시도해야합니다. 잠재적으로 가능한 –

+0

. 방금 "scene.add (ltable);을 주석 처리했습니다." "if (! ltable) {alert ("No table ")};"라는 경고를 추가했습니다. 보다. 경고가 발생하지 않았으므로 제대로 설정되었다고 생각합니다. – rougegoat

+0

그럼 내가 아는 지식 때문에 칼다 또는 자바 스크립트에 대한 지식이있는 사람을 기다려야 할 것 같습니다. :) –

답변

0

이 결재되었습니다. Collada 로더는 어떤 기능의 일부가되는 것을 싫어하고 그 기능이 작동하지 않습니다. 그래서 문제는 기능을 벗어난 상태로 유지하는 것입니다.

+0

그게 무슨 뜻입니까? 글로벌 범위에서 실행해야합니까? – msfeldstein

0

이 문제에 대한 대답은 scene.add()의 위치가 콜백 기능 밖에 있기 때문입니다. 콜백이 발생하기 전에 호출되고 있으므로 정의되지 않은 오류가 발생합니다.