2013-01-18 4 views
3

Object3D 노드에서 장면 그래프를 작성합니다. 몇 가지 노드는 처음부터 활성화되지 않은 Spin 객체로 취급하고 싶지만 타이머를 사용하여 특정 '시작'이벤트를받을 때 활성화됩니다. 이 문제를 해결하려면 도움이 필요합니다. 다음 코드 Object3D에 사용자 지정 이벤트 추가

var spinner_obj = new THREE.Object3D(); 
spinner_obj.addEventListener('start', function(event) {alert("GOT THE EVENT");}); 

시도했지만이 나에게 오류 준다 "형식 오류를 : spinner_obj.addEventListener 함수 아니다"또한

은 내가이 '시작'이벤트를 해고해야 할 것인가? 나는 자바 스크립트 초보자이다. 나는 https://github.com/mrdoob/eventdispatcher.js을 따르려고했지만 좀 더 포인터가 필요합니다. 고맙습니다.

답변

11

이 일을보십시오 :

var spinner_obj = new THREE.Object3D(); 
THREE.EventDispatcher.call(spinner_obj); 
spinner_obj.addEventListener('start', function(event) {alert("GOT THE EVENT");}); 
spinner_obj.dispatchEvent({type:'start'}); 
3

EventDispatcher 클래스에서 파생되지 않는 한 "addEventListener", "removeEventListener"및 "dispatchEvent"함수를 Object3D.js 파일에 수동으로 추가해야합니다.

참고 : 또한 샘플 코드에 따라 Object3D.js 어딘가에서 "start"이벤트를 트리거해야합니다.

관련 문제