@@ -2,7 +2,7 @@ import * as THREE from 'three';
22
33class EditorControls extends THREE . EventDispatcher {
44
5- constructor ( object , domElement ) {
5+ constructor ( object ) {
66
77 super ( ) ;
88
@@ -34,6 +34,8 @@ class EditorControls extends THREE.EventDispatcher {
3434 var pointers = [ ] ;
3535 var pointerPositions = { } ;
3636
37+ var domElement = null ;
38+
3739 // events
3840
3941 var changeEvent = { type : 'change' } ;
@@ -269,21 +271,31 @@ class EditorControls extends THREE.EventDispatcher {
269271
270272 }
271273
272- this . dispose = function ( ) {
274+ this . connect = function ( element ) {
275+
276+ if ( domElement !== null ) this . disconnect ( ) ;
277+
278+ domElement = element ;
279+
280+ domElement . addEventListener ( 'contextmenu' , contextmenu ) ;
281+ domElement . addEventListener ( 'dblclick' , onMouseUp ) ;
282+ domElement . addEventListener ( 'wheel' , onMouseWheel , { passive : false } ) ;
283+
284+ domElement . addEventListener ( 'pointerdown' , onPointerDown ) ;
285+
286+ } ;
287+
288+ this . disconnect = function ( ) {
273289
274290 domElement . removeEventListener ( 'contextmenu' , contextmenu ) ;
275291 domElement . removeEventListener ( 'dblclick' , onMouseUp ) ;
276292 domElement . removeEventListener ( 'wheel' , onMouseWheel ) ;
277293
278294 domElement . removeEventListener ( 'pointerdown' , onPointerDown ) ;
279295
280- } ;
296+ domElement = null ;
281297
282- domElement . addEventListener ( 'contextmenu' , contextmenu ) ;
283- domElement . addEventListener ( 'dblclick' , onMouseUp ) ;
284- domElement . addEventListener ( 'wheel' , onMouseWheel , { passive : false } ) ;
285-
286- domElement . addEventListener ( 'pointerdown' , onPointerDown ) ;
298+ } ;
287299
288300 // touch
289301
0 commit comments