2013-04-22 18 views
3

對於r58中的EventDispatcer有所改變,我無法將任何更多自定義事件添加到對象。按照Add custom event to Object3D我曾經有:EventDispatcher(r58)

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'}); 

但這停止R58的工作出現錯誤消息:

Object [object Object] has no method 'addEventListener' 

回答

2

現在,它的使用,而不是在每個對象複製它的功能的單一實例。

這是到目前爲止,我已經找到了最好的方法: https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader.js#L11-L14

我想我會做Object3D擴展EventDispatcher原型,但...

+0

所以你的意思是我沒有叫「三。 EventDispatcher.call'每次我想添加一個事件到一個對象?如果不是,我該如何重寫上面的代碼。 – gaitat 2013-04-23 06:10:47

+1

如果你使用的是r59dev + :) https://github.com/mrdoob/three.js/commit/e347fc04de0e4ae18d2c426e2545afc7c2742bb3 – mrdoob 2013-04-23 14:32:43

+0

我修補了我的Object3D代碼版本,就像在提交中一樣,刪除了對THREE.EventDispatcher.call的所有引用從我的對象,但我仍然得到「Uncaught TypeError:Object [對象對象]沒有方法'addEventListener'」在我的一個Object3D對象和「未捕獲TypeError:對象[對象對象]沒有方法'dispatchEvent'」上TrackballControls。我認爲這是因爲我沒有r59dev TrackballControls代碼(不知道如何得到它),但仍然有我的Object3D上的EventListener的問題。 – gaitat 2013-04-23 15:51:28

相關問題