From e29fffcbf6cbc426c459156f072ba2edac1716e5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 06 三月 2024 09:13:44 +0800 Subject: [PATCH] # --- zy-asrs-flow/src/pages/map/player.js | 32 ++++++++++++++++---------------- 1 files changed, 16 insertions(+), 16 deletions(-) diff --git a/zy-asrs-flow/src/pages/map/player.js b/zy-asrs-flow/src/pages/map/player.js index 2188253..7888d27 100644 --- a/zy-asrs-flow/src/pages/map/player.js +++ b/zy-asrs-flow/src/pages/map/player.js @@ -33,8 +33,7 @@ this.mapEvent = null; } this.mapEvent = (event) => { - // left - if (event.button === 0 && leftEvent) { + if (leftEvent && event.button === 0) { switch (leftEvent) { case Utils.MapEvent.SELECTION_BOX: this.mapSelect(event); @@ -43,8 +42,7 @@ break } } - // right - if (event.button === 2 && rightEvent) { + if (rightEvent && event.button === 2) { switch (rightEvent) { default: break @@ -56,11 +54,12 @@ mapSelect = (event) => { let isSelecting = false; + if (!this.selectionBox) { + this.selectionBox = new PIXI.Graphics(); + this.app.stage.addChild(this.selectionBox); + } - const selectionBox = new PIXI.Graphics(); - this.app.stage.addChild(selectionBox); - - // start + // select start pos const startPoint = new PIXI.Point(); this.app.renderer.events.mapPositionToPoint(startPoint, event.clientX, event.clientY); let selectionStart = { x: startPoint.x, y: startPoint.y }; @@ -69,7 +68,7 @@ const handleMouseMove = (event) => { if (isSelecting && !this.didClickSprite) { - // end + // select end pos const endPoint = new PIXI.Point(); this.app.renderer.events.mapPositionToPoint(endPoint, event.clientX, event.clientY); const selectionEnd = { x: endPoint.x, y: endPoint.y } @@ -77,11 +76,11 @@ const width = Math.abs(selectionEnd.x - selectionStart.x); const height = Math.abs(selectionEnd.y - selectionStart.y); - selectionBox.clear(); - selectionBox.lineStyle(2, 0xCCCCCC, 1); - selectionBox.beginFill(0xCCCCCC, 0.2); - selectionBox.drawRect(Math.min(selectionStart.x, selectionEnd.x), Math.min(selectionStart.y, selectionEnd.y), width, height); - selectionBox.endFill(); + this.selectionBox.clear(); + this.selectionBox.lineStyle(2, 0xCCCCCC, 1); + this.selectionBox.beginFill(0xCCCCCC, 0.2); + this.selectionBox.drawRect(Math.min(selectionStart.x, selectionEnd.x), Math.min(selectionStart.y, selectionEnd.y), width, height); + this.selectionBox.endFill(); } } @@ -89,6 +88,7 @@ this.mapContainer.parent.on('mouseup', (event) => { if (isSelecting) { + // sprite show style which be selected if (this.selectedSprites && this.selectedSprites.length > 0) { this.selectedSprites.forEach(child => { Utils.unMarkSprite(child); @@ -97,13 +97,13 @@ this.selectedSprites = []; this.mapContainer.children.forEach(child => { - if (Utils.isSpriteInSelectionBox(child, selectionBox)) { + if (Utils.isSpriteInSelectionBox(child, this.selectionBox)) { this.selectedSprites.push(child); Utils.markSprite(child); } }) isSelecting = false; - selectionBox.clear(); + this.selectionBox.clear(); // batch move -- Gitblit v1.9.1