3

Object3Dノードからシーングラフを作成しています。最初からアクティブではないが、特定の「開始」イベントを受信すると、おそらくタイマーを使用してアクティブになるスピンオブジェクトとして扱いたいノードのいくつか。これを設定するには、いくつかの支援が必要です。私は次のコードを試しました

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クラスから派生していない限り、Object3D.jsファイルに「addEventListener」、「removeEventListener」、および「dispatchEvent」関数を手動で追加する必要があります。

注:また、サンプルコードに従って、Object3D.jsのどこかで「開始」イベントをトリガーする必要があります。

于 2013-01-18T11:47:16.737 に答える