addMouseMoveEvent
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-17 18:55:51 |
👁️ 阅读: 10
根据浮生梦老师前端课程内容,`GUI:addMouseMoveEvent` 函数用于设置控件的鼠标进入、移出和悬停事件。
**函数原型:**
```lua
GUI:addMouseMoveEvent(widget, param)
```
**参数说明:**
- `widget`: 控件对象
- `param`: 事件配置表,包含以下回调函数:
- `onEnterFunc`: 鼠标进入控件区域时触发的回调函数
- `onLeaveFunc`: 鼠标移出控件区域时触发的回调函数
- `onInsideFunc`: 鼠标一直在控件内部时触发的回调函数
**使用示例:**
```lua
-- 创建父节点
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建按钮
local button = GUI:Button_Create(parent, "btn_test", 100, 100, "res/public/1900000612.png")
GUI:Button_setTitleText(button, "测试按钮")
-- 添加鼠标移动事件
GUI:addMouseMoveEvent(button, {
onEnterFunc = function()
SL:print("鼠标进入按钮区域")
-- 可以在这里添加悬停效果,比如改变按钮透明度
GUI:setOpacity(button, 200)
end,
onLeaveFunc = function()
SL:print("鼠标离开按钮区域")
-- 恢复按钮透明度
GUI:setOpacity(button, 255)
end,
onInsideFunc = function()
-- 鼠标在按钮内部持续触发
-- SL:print("鼠标在按钮内部")
end
})
```
**注意事项:**
1. 该函数需要控件支持鼠标事件,可以使用 `GUI:setMouseEnabled(widget, true)` 启用鼠标触摸
2. 回调函数中可以进行UI状态变化,如改变透明度、颜色等
3. 常与 `GUI:addMouseOverTips` 配合使用实现悬停提示功能
**实际应用场景:**
- 按钮悬停效果(高亮、放大等)
- 物品图标悬停显示详细信息
- 地图区域鼠标悬停提示
- 技能图标悬停显示技能说明
← 返回问答库