Sfoglia il codice sorgente

Merge branch 'dev' of http://192.168.0.115:3000/4dkankan/4dkankan_bim into dev

rindy 2 anni fa
parent
commit
159567a1bc
2 ha cambiato i file con 20 aggiunte e 7 eliminazioni
  1. 18 5
      src/utils/ConvertViews.js
  2. 2 2
      src/utils/sync.js

+ 18 - 5
src/utils/ConvertViews.js

@@ -430,22 +430,35 @@ export default class ConvertViews extends THREE.EventDispatcher{
             dom.addEventListener('mousemove', e => {   
                 if(!dragging)return
                 let pointerEnd = new THREE.Vector2(e.clientX, e.clientY) 
-                pointerDelta.subVectors(pointerEnd, pointerStart)
-                //pointerDelta.multiplyScalar(0.07)
+                pointerDelta.subVectors(pointerEnd, pointerStart) 
                 pointerStart.copy(pointerEnd)
                 
                 bimViewer.getViewer().cameraControl.pan(pointerDelta.x,pointerDelta.y)
             }) 
+            
+            let mouseupAt = (target,e)=>{//触发target的mouseup
+                let event = new MouseEvent('mouseup', { 
+                    button : e.button,  buttons:e.buttons
+                })
+                target.dispatchEvent(event)
+            }
             targetApp.addEventListener('mouseup', e => {   
                 dragging = false
+                //触发当前sourceDom的mouseup 
+                mouseupAt(this.sourceDom,e)
             }) 
             this.sourceDom.addEventListener('mouseup', e => {   
                 dragging = false 
+                //触发当前targetApp的mouseup 
+                mouseupAt(targetApp,e)
             }) 
-            this.addEventListener('globalMouseUp', e => {   
-                dragging = false
+            this.addEventListener('mouseupOutOfWin', e => {   
+                dragging = false 
+                //触发当前targetApp的mouseup
+                mouseupAt(targetApp,e)
             }) 
-            
+             
+             
             targetApp.CLOUD.GlobalData.WalkRotationSpeed = -0.2 //反向一下
              
             //bimViewer.viewer.getViewer().editorManager.userInputEditor.enable = true//这句近似将control切换成orbit

+ 2 - 2
src/utils/sync.js

@@ -187,11 +187,11 @@ export function laserChangeMode(mode){
     laserMode = mode
 }
 
-window.addEventListener('mouseup',(e)=>{
+window.addEventListener('mouseup',(e)=>{//拖拽出窗口外才执行
     //iframe的window的mouseup 在拖拽出窗口外居然不执行,只好用全局的通知它们
     sourceApp && sourceApp.sceneType == 'laser' && sourceApp.viewer && sourceApp.viewer.inputHandler.onMouseUp(e)  
     targetApp && targetApp.sceneType == 'laser' && targetApp.viewer && targetApp.viewer.inputHandler.onMouseUp(e) 
-    views.dispatchEvent({type:'globalMouseUp'})
+    views.dispatchEvent({type:'mouseupOutOfWin', evt:e})
 
 })