xzw 2 years ago
parent
commit
a6dc9f34a9
2 changed files with 20 additions and 7 deletions
  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 => {   
             dom.addEventListener('mousemove', e => {   
                 if(!dragging)return
                 if(!dragging)return
                 let pointerEnd = new THREE.Vector2(e.clientX, e.clientY) 
                 let pointerEnd = new THREE.Vector2(e.clientX, e.clientY) 
-                pointerDelta.subVectors(pointerEnd, pointerStart)
-                //pointerDelta.multiplyScalar(0.07)
+                pointerDelta.subVectors(pointerEnd, pointerStart) 
                 pointerStart.copy(pointerEnd)
                 pointerStart.copy(pointerEnd)
                 
                 
                 bimViewer.getViewer().cameraControl.pan(pointerDelta.x,pointerDelta.y)
                 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 => {   
             targetApp.addEventListener('mouseup', e => {   
                 dragging = false
                 dragging = false
+                //触发当前sourceDom的mouseup 
+                mouseupAt(this.sourceDom,e)
             }) 
             }) 
             this.sourceDom.addEventListener('mouseup', e => {   
             this.sourceDom.addEventListener('mouseup', e => {   
                 dragging = false 
                 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 //反向一下
             targetApp.CLOUD.GlobalData.WalkRotationSpeed = -0.2 //反向一下
              
              
             //bimViewer.viewer.getViewer().editorManager.userInputEditor.enable = true//这句近似将control切换成orbit
             //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
     laserMode = mode
 }
 }
 
 
-window.addEventListener('mouseup',(e)=>{
+window.addEventListener('mouseup',(e)=>{//拖拽出窗口外才执行
     //iframe的window的mouseup 在拖拽出窗口外居然不执行,只好用全局的通知它们
     //iframe的window的mouseup 在拖拽出窗口外居然不执行,只好用全局的通知它们
     sourceApp && sourceApp.sceneType == 'laser' && sourceApp.viewer && sourceApp.viewer.inputHandler.onMouseUp(e)  
     sourceApp && sourceApp.sceneType == 'laser' && sourceApp.viewer && sourceApp.viewer.inputHandler.onMouseUp(e)  
     targetApp && targetApp.sceneType == 'laser' && targetApp.viewer && targetApp.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})
 
 
 })
 })