From d5df2385eeaf50c240fba88669b5ef002dbda4bb Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 19 十月 2024 15:05:22 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/tool.js |   77 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 7 deletions(-)

diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index ed0801d..d750603 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -24,6 +24,7 @@
 
 let app, mapContainer, themeMode;
 let selectedSprite, effectCircle, effectTicker;
+let tooltip;
 
 export function getApp() {
     return app;
@@ -226,13 +227,17 @@
     sprite.off('pointerup');
     sprite.off('pointermove');
     sprite.off('pointerdown');
+    sprite.off('pointerover');
+    sprite.off('pointerout');
     sprite.off('click');
 
-    sprite.on("click", onClick);
-
-    function onClick(event) {
+    sprite.on("click", (event) => {
         setCurSprite(sprite);
-    }
+    });
+
+    sprite.on('pointerover', onSpriteMouseOver);
+    sprite.on('pointermove', onSpriteMouseMove);
+    sprite.on('pointerout', onSpriteMouseOut);
 
 }
 
@@ -240,6 +245,8 @@
     sprite.off('pointerup');
     sprite.off('pointermove');
     sprite.off('pointerdown');
+    sprite.off('pointerover');
+    sprite.off('pointerout');
     sprite.off('click');
 
     sprite.on("pointerdown", onDragStart);
@@ -277,12 +284,68 @@
     sprite.off('pointerup');
     sprite.off('pointermove');
     sprite.off('pointerdown');
+    sprite.off('pointerover');
+    sprite.off('pointerout');
     sprite.off('click');
 
-    sprite.on("click", onClick);
-
-    function onClick(event) {
+    sprite.on("click", (event) => {
         setSpriteSettings(sprite);
+    });
+
+    sprite.on('pointerover', onSpriteMouseOver);
+    sprite.on('pointermove', onSpriteMouseMove);
+    sprite.on('pointerout', onSpriteMouseOut);
+
+}
+
+const createSpriteTooltip = (sprite) => {
+    const style = new PIXI.TextStyle({
+        fontFamily: 'Microsoft YaHei',
+        fontSize: 16,
+        fill: '#ffffff',
+        stroke: '#4a1850',
+        strokeThickness: 2,
+        dropShadow: true,
+        dropShadowColor: '#000000',
+        dropShadowBlur: 4,
+        dropShadowAngle: Math.PI / 6,
+        dropShadowDistance: 6,
+    });
+
+    const text = new PIXI.Text(`缂栧彿: ${sprite.data.no}`, style);
+
+    const background = new PIXI.Graphics();
+    background.beginFill(0x000000, 0.7);
+    background.drawRoundedRect(0, 0, text.width + 20, text.height + 20, 10);
+    background.endFill();
+
+    text.x = 10;
+    text.y = 10;
+    background.addChild(text);
+
+    tooltip = new PIXI.Container();
+    tooltip.addChild(background);
+    return tooltip;
+}
+
+function onSpriteMouseOver(event) {
+    tooltip = createSpriteTooltip(this);// this => sprite
+    tooltip.x = event.data.global.x + 10;
+    tooltip.y = event.data.global.y + 10;
+    app.stage.addChild(tooltip);
+}
+
+function onSpriteMouseMove(event) {
+    if (tooltip) {
+        tooltip.x = event.data.global.x + 10;
+        tooltip.y = event.data.global.y + 10;
+    }
+}
+
+function onSpriteMouseOut() {
+    if (tooltip && tooltip.parent) {
+        tooltip.parent.removeChild(tooltip);
+        tooltip = null;
     }
 }
 

--
Gitblit v1.9.1