3

我正在用 Object3D 节点构建场景图。我想将几个节点视为 Spin 对象,它们从一开始就不是活动的,但是当它们收到特定的“开始”事件时它们变得活动,可能使用计时器来启动它。我需要一些帮助来设置它。我试过下面的代码

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

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

此外,我还需要做什么来触发这个“开始”事件?我是一个 javascript 初学者。我试图关注https://github.com/mrdoob/eventdispatcher.js但我需要更多的指针。谢谢你。

4

2 回答 2

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'});
于 2013-01-18T15:27:06.527 回答
3

只要不是从 EventDispatcher 类派生的,您就必须手动将“addEventListener”、“removeEventListener”和“dispatchEvent”函数添加到 Object3D.js 文件中。

注意:您还应该根据您的示例代码在 Object3D.js 的某处触发“开始”事件。

于 2013-01-18T11:47:16.737 回答