GUI:addMouseMoveEvent(str_var_but, {
onEnterFunc = function()
-- 鼠标进入时显示tips
local strtip = "<font size='16' color='#FFFFFF'>"..str_var.."</font>"
local thisWorldPosition =
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-08 01:48:17 |
👁️ 阅读: 5
要在鼠标退出后不显示Tips,你需要在`GUI:addMouseMoveEvent`中设置`onLeaveFunc`回调函数,并在其中关闭或清除Tips显示。
根据浮生梦老师前端课程内容,正确的写法如下:
```lua
GUI:addMouseMoveEvent(str_var_but, {
onEnterFunc = function()
-- 鼠标进入时显示tips
local strtip = "<font size='16' color='#FFFFFF'>"..str_var.."</font>"
local thisWorldPosition = GUI:getWorldPosition(str_var_but)
thisWorldPosition.x = thisWorldPosition.x + 0
thisWorldPosition.y = thisWorldPosition.y + 0
local data = {
width = 100,
str = strtip,
worldPos = thisWorldPosition,
formatWay = 1,
anchorPoint = { x = 0.5, y = 1 }
}
SL:OpenCommonDescTipsPop(data)
end,
onLeaveFunc = function()
-- 鼠标退出时清除Tips
GUI:addMouseOverTips(str_var_but, "", { x = 0, y = 0 }, { x = 0.5, y = 0.5 })
end
})
```
**关键修改点:**
1. 添加了`onLeaveFunc`回调函数,在鼠标移出按钮时触发
2. 在`onLeaveFunc`中调用`GUI:addMouseOverTips`并传入空字符串来清除Tips
3. 移除了原代码中`onEnterFunc`里多余的`GUI:addMouseOverTips`调用
**函数说明:**
- `GUI:addMouseMoveEvent`:设置鼠标进入、移出和内部移动事件
- `onLeaveFunc`:鼠标移出控件时触发的回调函数
- `GUI:addMouseOverTips(str_var_but, "", ...)`:传入空字符串会清除之前设置的Tips
这样当鼠标移出按钮时,Tips就会自动消失。如果你还需要关闭`SL:OpenCommonDescTipsPop`创建的弹窗,可能需要调用对应的关闭函数,但根据你的代码结构,鼠标移出后弹窗应该会自动处理。
← 返回问答库