From ea3fe2cd0f98a8f16274981795dfeba1edc4d3ea Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 05 三月 2024 20:30:19 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/player.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++
zy-asrs-flow/src/pages/map/utils.js | 1 +
2 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/player.js b/zy-asrs-flow/src/pages/map/player.js
index f688b42..711a73a 100644
--- a/zy-asrs-flow/src/pages/map/player.js
+++ b/zy-asrs-flow/src/pages/map/player.js
@@ -30,6 +30,7 @@
activateMapEvent = (leftEvent, rightEvent) => {
if (this.mapEvent) {
this.mapContainer.parent.off('mousedown', this.mapEvent);
+ this.mapEvent = null;
}
this.mapEvent = (event) => {
// left
@@ -104,6 +105,52 @@
isSelecting = false;
selectionBox.clear();
+
+ // batch move
+ if (this.selectedSprites && this.selectedSprites.length > 0) {
+ this.batchMove = false;
+
+ const batchMoving = (event) => {
+ if (this.batchMove) {
+ var mouseMovement = { x: event.global.x - this.batchMoveStartPos.x, y: event.global.y - this.batchMoveStartPos.y };
+ for (let sprite of this.selectedSprites) {
+ sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x;
+ sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y;
+ }
+ }
+ }
+
+ const batchMoveEnd = (event) => {
+ this.selectedSprites.forEach(child => {
+ Utils.unMarkSprite(child);
+ })
+ this.selectedSprites = [];
+ this.mapContainer.parent.off('mousedown');
+ this.mapContainer.parent.off('mousemove');
+
+ this.activateMapEvent(Utils.MapEvent.SELECTION_BOX);
+ }
+
+ const batchMoveStart = (event) => {
+ this.batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y };
+ this.selectedSprites.forEach(child => {
+ child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y };
+ })
+
+ this.batchMove = true;
+ this.mapContainer.parent.off('mousemove');
+ this.mapContainer.parent.on('mousemove', batchMoving);
+
+ this.mapContainer.parent.off('mouseup');
+ this.mapContainer.parent.on('mouseup', batchMoveEnd);
+ }
+
+ this.mapContainer.parent.off('mousedown')
+ this.mapContainer.parent.on('mousedown', batchMoveStart);
+ }
+
+
+
}
this.mapContainer.parent.off('mousemove', handleMouseMove);
diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index 902c76b..bef2076 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -28,6 +28,7 @@
sprite.anchor.set(0.5);
sprite.cursor = 'pointer';
sprite.eventMode = 'static';
+ sprite.data = {};
}
export const beMovable = (sprite, setDidClickSprite) => {
--
Gitblit v1.9.1