function TeJieShiZhe:initUI(data)
local ui = self.ui
self.select = 1
for i = 1 , 6 do
UILib:addOnClickEvent("ui.Button_"..i, function()
self.select = i
self:updateUI(data)
print(self.select)
从你的代码来看,点击按钮没反应主要有几个问题需要检查:
1. **UILib模块使用问题**:浮生梦老师前端课程中通常使用 `GUI:addOnClickEvent()` 来注册点击事件,而不是 `UILib:addOnClickEvent()`
2. **控件获取方式**:`"ui.Button_"..i` 这种字符串方式可能无法正确获取到控件对象
3. **UI对象初始化**:需要确保 `self.ui` 已经正确初始化并包含了这些按钮
以下是修正后的代码:
```lua
function TeJieShiZhe:initUI(data)
local ui = self.ui
self.select = 1
-- 首先确保ui对象已经正确初始化
if not ui then
SL:print("UI对象未初始化")
return
end
for i = 1, 6 do
-- 正确获取按钮对象
local btnName = "Button_"..i
local button = GUI:getChildByName(ui, btnName) -- 或者根据你的UI结构调整
if not GUI:Win_IsNull(button) then
-- 使用正确的GUI函数注册点击事件
GUI:addOnClickEvent(button, function()
self.select = i
self:updateUI(data)
SL:print("当前选择:", self.select)
end)
else
SL:print("按钮"..i.."不存在")
end
end
-- 关闭按钮也需要正确获取
local closeBtn = ui.Button_tripClose
if not GUI:Win_IsNull(closeBtn) then
GUI:addOnClickEvent(closeBtn, function()
GUI:setVisible(ui.Image_1, false)
end)
else
SL:print("关闭按钮不存在")
end
end
```
**需要检查的几个关键点:**
1. **UI结构**:确认 `self.ui` 中是否真的有 `Button_1` 到 `Button_6` 这些按钮
2. **控件创建**:这些按钮是否已经通过 `GUI:Button_Create()` 创建
3. **父节点**:确保所有按钮都有正确的父节点关系
4. **事件注册时机**:在UI完全创建后再注册点击事件
**调试建议:**
- 在 `initUI` 函数开始处添加 `SL:print("initUI被调用")`
- 检查每个按钮是否都能正确获取到:`SL:print("按钮"..i.."存在:", not GUI:Win_IsNull(button))`
下次写代码时要注意函数名的正确性,不懂的地方可以问浮生梦尊师!