2013-04-26 2 views
0

나는 3 인입니다 .js noob. 내가이 샘플을 재생하고 http://threejs.org/examples/css3d_periodictable.htmlperiodictable 예제 클릭 한 요소를 찾는 방법은 무엇입니까?

내가 특정 요소를 클릭 할 때 알고 싶은 몇 가지 샘플을보고 아래의 코드가 함수 내에서 브레이크 포인트를 설정 추가 할

는 intersects.length는 항상 0도 때입니다 나는 요소 내부를 클릭한다. 도와주세요! 내가 뭘 놓치고 있니? 사전

function onDocumentMouseDown(event) { 

     event.preventDefault(); 
     controls.enabled = true; 

     mouse.x = (event.clientX/window.innerWidth) * 2 - 1; 
     mouse.y = - (event.clientY/window.innerHeight) * 2 + 1; 
     var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5); 
     //var vector = new THREE.Vector3((event.clientX/window.innerWidth) * 2 - 1, - (event.clientY/window.innerHeight) * 2 + 1, 0.5); 
     projector.unprojectVector(vector, camera); 

     var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize()); 

     var intersects = raycaster.intersectObjects(objects,true); 

     if (intersects.length > 0) { 

      intersects[ 0 ].object.material.color.setHex(Math.random() * 0xffffff); 

      var particle = new THREE.Particle(particleMaterial); 
      particle.position = intersects[ 0 ].point; 
      particle.scale.x = particle.scale.y = 8; 
      scene.add(particle); 

     } 

    } 

답변

0

Raycaster에서 덕분에 css3Drenderer 작동하지 않습니다. 그냥 elments onclick 이벤트를 사용하십시오.

+0

매우 도움이 된 Gero3에 감사드립니다. 그 개념 상 실종 되었기 때문에 귀하의 대답은 제가 앞으로 나아갈 수 있도록 도와주었습니다. – user2324723

관련 문제