设置按钮点击时,不能穿透
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-06 09:42:16 |
👁️ 阅读: 8
要设置按钮点击时不穿透(即触摸吞噬),可以使用 `GUI:setSwallowTouches(widget, value)` 函数。
**示例代码:**
```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:setSwallowTouches(button, true)
-- 添加点击事件
GUI:addOnClickEvent(button, function()
SL:print("按钮被点击,不会穿透到下层")
end)
```
**参数说明:**
- `widget`:控件对象(按钮、布局等)
- `value`:是否吞噬触摸事件
- `true`:吞噬触摸,不会穿透到下层控件
- `false`:不吞噬,触摸会穿透
**注意事项:**
1. 这个函数适用于所有GUI控件,不只是按钮
2. 默认情况下控件可能不吞噬触摸,需要显式设置
3. 如果设置了`true`,该控件会拦截所有触摸事件,下层控件无法接收到
这样设置后,当点击按钮时,触摸事件会被按钮完全吸收,不会传递到背景或其他下层控件。
← 返回问答库