3个按钮 点击哪个颜色变成绿色 其他恢复默认 怎么操作
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-24 11:27:24 |
👁️ 阅读: 1
要实现三个按钮点击哪个哪个变绿,其他恢复默认的效果,需要以下步骤:
```lua
-- 1. 先创建父节点
local parent = GUI:Win_Create("ButtonGroup", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 2. 创建三个按钮
local btn1 = GUI:Button_Create(parent, "btn1", 100, 100, "res/public/1900000612.png")
local btn2 = GUI:Button_Create(parent, "btn2", 200, 100, "res/public/1900000612.png")
local btn3 = GUI:Button_Create(parent, "btn3", 300, 100, "res/public/1900000612.png")
-- 设置按钮文字
GUI:Button_setTitleText(btn1, "按钮1")
GUI:Button_setTitleText(btn2, "按钮2")
GUI:Button_setTitleText(btn3, "按钮3")
-- 3. 定义默认颜色和选中颜色
local defaultColor = "#ffffff" -- 白色
local selectedColor = "#00ff00" -- 绿色
-- 4. 创建当前选中按钮变量
local currentSelectedBtn = nil
-- 5. 定义重置所有按钮颜色的函数
local function resetAllButtons()
GUI:Button_setTitleColor(btn1, defaultColor)
GUI:Button_setTitleColor(btn2, defaultColor)
GUI:Button_setTitleColor(btn3, defaultColor)
end
-- 6. 定义按钮点击处理函数
local function handleButtonClick(clickedBtn)
-- 先重置所有按钮颜色
resetAllButtons()
-- 设置被点击按钮为绿色
GUI:Button_setTitleColor(clickedBtn, selectedColor)
-- 更新当前选中按钮
currentSelectedBtn = clickedBtn
SL:print("按钮被选中")
end
-- 7. 为每个按钮绑定点击事件
GUI:addOnClickEvent(btn1, function()
handleButtonClick(btn1)
end)
GUI:addOnClickEvent(btn2, function()
handleButtonClick(btn2)
end)
GUI:addOnClickEvent(btn3, function()
handleButtonClick(btn3)
end)
-- 8. 初始化:默认选中第一个按钮
handleButtonClick(btn1)
```
**关键点说明:**
1. **颜色管理**:
- `defaultColor`:默认颜色(白色)
- `selectedColor`:选中颜色(绿色)
2. **状态管理**:
- 使用`currentSelectedBtn`变量记录当前选中的按钮
- 每次点击时先调用`resetAllButtons()`重置所有按钮
3. **事件处理**:
- 每个按钮点击时都调用`handleButtonClick()`函数
- 该函数会重置所有按钮,然后设置被点击按钮为绿色
4. **扩展性**:
- 如果需要更多按钮,只需创建新按钮并绑定相同的事件处理函数
- 可以轻松修改颜色值来改变视觉效果
这样就能实现点击哪个按钮哪个变绿,其他恢复默认的效果了。
← 返回问答库