GUI:createLay(itemShow,"itemShow"..v.Index,55,55,function ()
SL:print('~~~~~~~~~~~~',v.Name)
end) 这里回调 接口的地方 --- 创建层 并且有点击事件
function GUI:createLay(widget,id,w,h,func)
local layout = GUI:Layout_Create(widget,id,
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-25 20:54:59 |
👁️ 阅读: 3
你写错的地方在于回调函数的调用方式。在 `self:onClick(layout, func())` 这一行,`func()` 会立即执行函数并传入其返回值,而不是将函数本身作为回调参数传递。
正确的写法应该是传入 `func` 函数本身,而不是调用它。此外,浮生梦老师前端课程中,设置点击事件的函数是 `GUI:addOnClickEvent`。
以下是修改后的代码:
```lua
function GUI:createLay(widget, id, w, h, func)
local layout = GUI:Layout_Create(widget, id, 0, 0, w, h, false)
-- 正确设置点击事件,传入函数对象func
GUI:addOnClickEvent(layout, func)
return layout
end
```
这样,当层被点击时,`func` 函数才会被触发执行。
← 返回问答库