function zhuanpanOBJ:main(p2, p3, data)
SL:print("p1, p2, p3", p2, p3, data)
self.Data = data
-- 先验证data是否有效
if data and type(data) == "string" then
local decodedData = SL:JsonDecode(data)
if decodedData then
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-07 08:55:52 |
👁️ 阅读: 22
根据浮生梦老师前端课程内容,你的代码有几个需要修正的地方:
## 主要问题:
1. **`GUI:createButton`函数不存在** - 应该使用`GUI:Button_Create`
2. **`GUI:onClick`函数不存在** - 应该使用`GUI:addOnClickEvent`
3. **红点判断逻辑需要调整**
## 修正后的代码:
```lua
function zhuanpanOBJ:pullpay()
for i = 1, #self.tab do
-- 使用正确的按钮创建函数
local btn = GUI:Button_Create(self._parent, "btn_" .. i, 300, 132 - (i - 1) * 42, "res/public/1900000680.png")
GUI:Button_setTitleText(btn, self.tab[i].jg .. "元购买")
-- 使用正确的点击事件函数
GUI:addOnClickEvent(btn, function()
SL:RequestPay(1, 7, self.tab[i].jg, 10)
end)
end
local btn_goumai = GUI:Button_Create(self._parent, "btn_goumai", 225, -160, "res/public/1900000680.png")
GUI:Button_setTitleText(btn_goumai, "一键购买")
GUI:addOnClickEvent(btn_goumai, function()
SL:print("self.Data----------------", self.Data[1][8])
SL:RequestPay(1, 7, 218, 10)
end)
local btn_lingqu = GUI:Button_Create(self._parent, "btn_lingqu", 255, -220, "res/public/1900000680.png")
GUI:Button_setTitleText(btn_lingqu, "领取称号")
GUI:addOnClickEvent(btn_lingqu, function()
SL:SendLuaNetMsg(1100, 1, 4, 0, "请求获取奖励道具idx")
end)
end
```
## 红点标记优化:
```lua
function zhuanpanOBJ:createItemShow()
for i = 1, 9 do
local cfgData = self.cfg[i]
local item = GUI:ItemShow_Create(self.ui["item_" .. i], "item", 0, 0,
{ index = cfgData.showReward[1][1], look = true, count = cfgData.showReward[1][2] })
GUI:setAnchorPoint(item, 0.5, 0.5)
-- 检查数据有效性
if self.Data and self.Data[1] and self.Data[1][i] == 1 then
-- 添加红点标记已获取
local redDot = GUI:Image_Create(item, "reward_redDot_" .. i, 45, 25,
"res/custom/common/zt/zaixian1.png")
GUI:setAnchorPoint(redDot, 1, 1)
end
end
end
```
## 注意事项:
1. **按钮创建**:必须使用`GUI:Button_Create`而不是`GUI:createButton`
2. **点击事件**:必须使用`GUI:addOnClickEvent`而不是`GUI:onClick`
3. **数据检查**:在访问`self.Data[1][i]`前要检查数据有效性
4. **红点位置**:`GUI:setAnchorPoint(redDot, 1, 1)`设置锚点为右上角
如果还有不明白的地方,可以继续问浮生梦老师!
根据浮生梦老师前端课程内容,你的代码有几个需要修正的地方:
## 主要问题:
1. **`GUI:createButton`函数不存在** - 应该使用`GUI:Button_Create`
2. **`GUI:onClick`函数不存在** - 应该使用`GUI:addOnClickEvent`
3. **红点判断逻辑需要调整**
## 修正后的代码:
```lua
function zhuanpanOBJ:pullpay()
for i = 1, #self.tab do
-- 使用正确的按钮创建函数
local btn = GUI:Button_Create(self._parent, "btn_" .. i, 300, 132 - (i - 1) * 42, "res/public/1900000680.png")
GUI:Button_setTitleText(btn, self.tab[i].jg .. "元购买")
-- 使用正确的点击事件函数
GUI:addOnClickEvent(btn, function()
SL:RequestPay(1, 7, self.tab[i].jg, 10)
end)
end
local btn_goumai = GUI:Button_Create(self._parent, "btn_goumai", 225, -160, "res/public/1900000680.png")
GUI:Button_setTitleText(btn_goumai, "一键购买")
GUI:addOnClickEvent(btn_goumai, function()
SL:print("self.Data----------------", self.Data[1][8])
SL:RequestPay(1, 7, 218, 10)
end)
local btn_lingqu = GUI:Button_Create(self._parent, "btn_lingqu", 255, -220, "res/public/1900000680.png")
GUI:Button_setTitleText(btn_lingqu, "领取称号")
GUI:addOnClickEvent(btn_lingqu, function()
SL:SendLuaNetMsg(1100, 1, 4, 0, "请求获取奖励道具idx")
end)
end
```
## 红点标记优化:
```lua
function zhuanpanOBJ:createItemShow()
for i = 1, 9 do
local cfgData = self.cfg[i]
local item = GUI:ItemShow_Create(self.ui["item_" .. i], "item", 0, 0,
{ index = cfgData.showReward[1][1], look = true, count = cfgData.showReward[1][2] })
GUI:setAnchorPoint(item, 0.5, 0.5)
-- 检查数据有效性
if self.Data and self.Data[1] and self.Data[1][i] == 1 then
-- 添加红点标记已获取
local redDot = GUI:Image_Create(item, "reward_redDot_" .. i, 45, 25,
"res/custom/common/zt/zaixian1.png")
GUI:setAnchorPoint(redDot, 1, 1)
end
end
end
```
## 注意事项:
1. **按钮创建**:必须使用`GUI:Button_Create`而不是`GUI:createButton`
2. **点击事件**:必须使用`GUI:addOnClickEvent`而不是`GUI:onClick`
3. **数据检查**:在访问`self.Data[1][i]`前要检查数据有效性
4. **红点位置**:`GUI:setAnchorPoint(redDot, 1, 1)`设置锚点为右上角
如果还有不明白的地方,可以继续问浮生梦老师!
← 返回问答库