@@ -2,7 +2,7 @@ import * as THREE from 'three';
2
2
3
3
class EditorControls extends THREE . EventDispatcher {
4
4
5
- constructor ( object , domElement ) {
5
+ constructor ( object ) {
6
6
7
7
super ( ) ;
8
8
@@ -34,6 +34,8 @@ class EditorControls extends THREE.EventDispatcher {
34
34
var pointers = [ ] ;
35
35
var pointerPositions = { } ;
36
36
37
+ var domElement = null ;
38
+
37
39
// events
38
40
39
41
var changeEvent = { type : 'change' } ;
@@ -269,21 +271,31 @@ class EditorControls extends THREE.EventDispatcher {
269
271
270
272
}
271
273
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 ( ) {
273
289
274
290
domElement . removeEventListener ( 'contextmenu' , contextmenu ) ;
275
291
domElement . removeEventListener ( 'dblclick' , onMouseUp ) ;
276
292
domElement . removeEventListener ( 'wheel' , onMouseWheel ) ;
277
293
278
294
domElement . removeEventListener ( 'pointerdown' , onPointerDown ) ;
279
295
280
- } ;
296
+ domElement = null ;
281
297
282
- domElement . addEventListener ( 'contextmenu' , contextmenu ) ;
283
- domElement . addEventListener ( 'dblclick' , onMouseUp ) ;
284
- domElement . addEventListener ( 'wheel' , onMouseWheel , { passive : false } ) ;
285
-
286
- domElement . addEventListener ( 'pointerdown' , onPointerDown ) ;
298
+ } ;
287
299
288
300
// touch
289
301
0 commit comments