Browse Source

SGraphyItem增加鼠标进入与离开事件。

庞利祥 5 years ago
parent
commit
1e8cc44a8b

+ 1 - 1
saga-web-graphy/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/graphy",
-    "version": "2.1.29",
+    "version": "2.1.31",
     "description": "上格云二维图形引擎。",
     "main": "lib/index.js",
     "types": "lib/index.d.js",

+ 33 - 1
saga-web-graphy/src/SGraphyItem.ts

@@ -384,7 +384,19 @@ export class SGraphyItem extends SObject {
             );
         }
 
-        return false;
+        // 处理hover
+        const scene = this.scene;
+        if (null != scene) {
+            if (scene.hoverItem == null || scene.hoverItem !== this) {
+                if (scene.hoverItem != null) {
+                    scene.hoverItem.onMouseLeave(event);
+                }
+                this.onMouseEnter(event);
+                scene.hoverItem = this;
+            }
+        }
+
+        return true;
     } // Function onMouseMove()
 
     /**
@@ -412,6 +424,26 @@ export class SGraphyItem extends SObject {
     } // Function onMouseUp()
 
     /**
+     * 鼠标进入事件
+     *
+     * @param   event   保存事件参数
+     * @return  boolean
+     */
+    onMouseEnter(event: SMouseEvent): boolean {
+        return false;
+    } // Function onMouseEnter()
+
+    /**
+     * 鼠标离开事件
+     *
+     * @param   event   保存事件参数
+     * @return  boolean
+     */
+    onMouseLeave(event: SMouseEvent): boolean {
+        return false;
+    } // Function onMouseLeave()
+
+    /**
      * 上下文菜单事件
      *
      * @param   event       事件参数

+ 2 - 0
saga-web-graphy/src/SGraphyScene.ts

@@ -15,6 +15,8 @@ export class SGraphyScene {
     protected root: SGraphyItem = new SGraphyItem();
     /** 当前捕获Item */
     grabItem: SGraphyItem | null = null;
+    /** 鼠标所在Item */
+    hoverItem: SGraphyItem | null = null;
 
     /**
      * 构造函数