2013-01-18 188 views
3

我正在从Object3D节点构建场景图。我想把它看作自旋对象的几个节点,它们从一开始就不活跃,但当它们接收到特定的“开始”事件时它们变得活跃,可能使用定时器来启动它。我需要一些帮助来设置这个。我曾尝试下面的代码将自定义事件添加到Object3D

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

但是这给了我一个错误“类型错误:spinner_obj.addEventListener是不是一个函数”

另外我会做火这“开始”事件?我是一个JavaScript初学者。 我试图按照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中的某处触发“启动”事件。

相关问题