From 381a583e789a5443807384e92c1961807165fd70 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 05 三月 2024 16:55:03 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/player.js | 14 +++++++++-----
zy-asrs-flow/src/pages/map/index.jsx | 17 ++++++++++++-----
zy-asrs-flow/src/pages/map/utils.js | 4 +++-
3 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/index.jsx b/zy-asrs-flow/src/pages/map/index.jsx
index a4dd6ff..82973de 100644
--- a/zy-asrs-flow/src/pages/map/index.jsx
+++ b/zy-asrs-flow/src/pages/map/index.jsx
@@ -57,10 +57,11 @@
const [mapContainer, setMapContainer] = React.useState(null);
const [mapEditModel, setMapEditModel] = React.useState(false);
const [deviceSettingModel, setDeviceSettingModel] = React.useState(false);
+ const [didClickSprite, setDidClickSprite] = React.useState(false);
// init func
React.useEffect(() => {
- player = new Player(mapRef.current, styles.dark);
+ player = new Player(mapRef.current, styles.dark, didClickSprite);
setApp(player.app);
setMapContainer(player.mapContainer);
Utils.syncApp(player.app);
@@ -74,6 +75,11 @@
};
window.addEventListener('resize', handleResize);
}, []);
+
+ // didClickSprite, stop triggers both sprite click and play's selection boxs
+ React.useEffect(() => {
+ player.updateDidClickSprite(didClickSprite);
+ }, [didClickSprite])
// resize
React.useEffect(() => {
@@ -92,12 +98,13 @@
}
if (mapEditModel) {
player.showGridlines();
- mapContainer.children.forEach(child => {
- Utils.beMovable(child);
- })
player.activateMapEvent(Utils.MapEvent.SELECTION_BOX, Utils.MapEvent.PAN);
+ mapContainer.children.forEach(child => {
+ Utils.beMovable(child, setDidClickSprite);
+ })
} else {
player.hideGridlines();
+ player.activateMapEvent(null, Utils.MapEvent.PAN);
mapContainer.children.forEach(child => {
child.off('pointerup');
child.off('pointerdown');
@@ -126,7 +133,7 @@
Utils.initSprite(sprite);
mapContainer.addChild(sprite);
- Utils.beMovable(sprite);
+ Utils.beMovable(sprite, setDidClickSprite);
};
return (
diff --git a/zy-asrs-flow/src/pages/map/player.js b/zy-asrs-flow/src/pages/map/player.js
index e1d2557..9f3cbee 100644
--- a/zy-asrs-flow/src/pages/map/player.js
+++ b/zy-asrs-flow/src/pages/map/player.js
@@ -4,8 +4,9 @@
export default class Player {
- constructor(dom, dark) {
+ constructor(dom, dark, didClickSprite) {
this.darkModel = dark;
+ this.didClickSprite = didClickSprite;
// init
this.app = generatePixiApp(dark);
dom.appendChild(this.app.view);
@@ -58,7 +59,6 @@
}
mapSelect = (event) => {
- let that = this;
let isSelecting = false;
const selectionBox = new PIXI.Graphics();
@@ -71,11 +71,11 @@
isSelecting = true;
- function handleMouseMove(event) {
- if (isSelecting) {
+ const handleMouseMove = (event) => {
+ if (isSelecting && !this.didClickSprite) {
// end
const endPoint = new PIXI.Point();
- that.app.renderer.events.mapPositionToPoint(endPoint, event.clientX, event.clientY);
+ this.app.renderer.events.mapPositionToPoint(endPoint, event.clientX, event.clientY);
const selectionEnd = { x: endPoint.x, y: endPoint.y }
const width = Math.abs(selectionEnd.x - selectionStart.x);
@@ -205,6 +205,10 @@
}
}
+ updateDidClickSprite = (value) => {
+ this.didClickSprite = value;
+ }
+
appTicker = () => {
TWEEDLE.Group.shared.update();
}
diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index e396260..ace7582 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -31,7 +31,7 @@
sprite.eventMode = 'static';
}
-export const beMovable = (sprite) => {
+export const beMovable = (sprite, setDidClickSprite) => {
sprite.off('pointerup');
sprite.off('pointerdown');
sprite.off('click');
@@ -40,6 +40,7 @@
let dragTarget;
function onDragStart(event) {
+ setDidClickSprite(true);
dragTarget = event.currentTarget;
mapContainer.parent.off('pointermove');
mapContainer.parent.on('pointermove', onDragMove, dragTarget);
@@ -56,6 +57,7 @@
function onDragEnd() {
if (dragTarget) {
+ setDidClickSprite(false);
this.parent.off('pointermove');
dragTarget.alpha = 1;
dragTarget = null;
--
Gitblit v1.9.1