2013-03-23 4 views
0

시스템에서 three.js 라이브러리를 업데이트하지 않았습니다. 오늘, three.js 파일을 업데이트했습니다. 하지만이 오류가 발생했습니다 : "Uncaught TypeError : Object # '메서드가 없습니다'traverseHierarchy '".Three.js SceneUtils에는 traverseHierarchy가 없습니다 !!! 어디 있니?

나는 교차로를 감지를 사용했다 : 온라인 코드는 여기에 있습니다 : https://dl.dropbox.com/u/44791710/test/simple2.html

function Intersect(event) { 
    event.preventDefault(); 
    var mousex = (event.clientX/window.innerWidth) * 2 - 1; 
    var mousey = -(event.clientY/window.innerHeight) * 2 + 1; 
    var vector = new THREE.Vector3(mousex, mousey, 1); 

    var toIntersect = []; 
    THREE.SceneUtils.traverseHierarchy(scene, function (child) { 
     if (child instanceof THREE.Mesh) { 
      toIntersect.push(child); 
     } 
    }); 
    var projector = new THREE.Projector(); 
    projector.unprojectVector(vector, camera); 
    var ray = new THREE.Raycaster(camera.position,vector.sub(camera.position).normalize()); 
    var intersects = ray.intersectObjects(toIntersect); 
    if (intersects.length > 0) { 
     for (var j = 0; j < intersects.length ; j++){ 
       target = intersects[j].object; 
       console.log('Intersects at ' + mouse.x + '/' + mouse.y + ':'); 
       for(var i = 0, m = intersects.length; i<m; i++){ 
        console.log(intersects[i].object.id, intersects[i]); 
       } 
     } 
    } 
} 

내가해야 할 변화의 어떤 종류의? 감사합니다. . Migration 가이드 상태로

+0

트래버스()는 Object3D에 매달려 있습니다. – gaitat

+0

나는 초보자이며 무슨 뜻인지 이해하지 못했습니다! 더 자세히 설명해 주시겠습니까?! 나는 3을 확인했다. 실타래와 3. 객체 3D. 그러나 어떤 횡단()도 없다! 감사. – mbehnaam

+0

http://mrdoob.github.com/three.js/docs/57/#Reference/Core/Object3D에서 문서를 보면 메서드로 traverse() 함수가 표시됩니다. – gaitat

답변

6

scene.traverse(scene, function (child) {scene.traverse(function (child) {으로 바꿔야합니다 (덧글을 추가 할 수 없어서 대신 답변을 만들었습니다).

+0

많은 감사. 문제 해결됨!!! – mbehnaam

1

, R51로 -> R52 :

Replaced SceneUtils.traverseHierarchy with object.traverse.

objectTHREE.Object3D 모든 인스턴스를 의미 예컨대 THREE.Mesh 또는 THREE.Scene입니다. 따라서 THREE.SceneUtils.traverseHierarchy 대신 scene.traverse을 사용해보세요.

+0

THREE.SceneUtils.traverseHierarchy, BY 장면 횡단을 교체했습니다. 하지만이 오류가있어 !! 잡히지 않은 TypeError : 객체가 함수가 아닙니다! 제발 여기에 온라인 코드를 좀 봐 https://dl.dropbox.com/u/44791710/test/simple2.html 많은 감사 !!! – mbehnaam

+0

@mbehnaam 멤버 함수이므로 장면을 매개 변수로 전달하지 않고 콜백 만 전달합니다. 질문 주석에 링크 된 API 문서를 참조하십시오. – Tapio

+0

감사합니다 ... – mbehnaam

관련 문제