local ui = {}
local _V = function(...) return SL:GetMetaValue(...) end
local FUNCQUEUE = {}
local TAGOBJ = {}
function ui.init(parent, __data__, __update__)
if __update__ then return ui.update(__data__) end
-- Create Node_1
local Node_1 = GUI:Nod
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-27 20:32:49 |
👁️ 阅读: 5
检查你的代码,发现 `gem` 是一个 `EquipShow_Create` 创建的控件,而 `putinGem_1` 到 `putinGem_5` 是作为 `gem` 的子控件创建的 `ItemShow_Create`。
问题在于 `GUI:getChildByName(npc.ui.gem, "putinGem_"..i)` 可能没有正确获取到子控件,因为 `gem` 是 `EquipShow_Create` 类型,子控件可能不是直接通过 `getChildByName` 获取。
建议修改为:
```lua
function npc:openWin()
-- 创造外部界面
local win_gem = GUI:Win_Create("win_gem", 0, 0, 0, 0)
GUI:LoadExport(win_gem, "playernpc/gem")
npc.ui = GUI:ui_delegate(win_gem)
GUI:addOnClickEvent(npc.ui.esc, function()
GUI:Win_Close(win_gem)
end)
for i = 1, 5 do
local gem = npc.ui["putinGem_"..i] -- 直接通过 ui_delegate 获取
if gem then
GUI:addOnClickEvent(gem, function()
SL:print("44151")
end)
else
SL:print("未找到 putinGem_"..i)
end
end
end
```
这样可以直接通过 `npc.ui` 获取已创建的 `putinGem_` 控件,确保点击事件绑定成功。
检查你的代码,发现 `gem` 是一个 `EquipShow_Create` 创建的控件,而 `putinGem_1` 到 `putinGem_5` 是作为 `gem` 的子控件创建的 `ItemShow_Create`。
问题在于 `GUI:getChildByName(npc.ui.gem, "putinGem_"..i)` 可能没有正确获取到子控件,因为 `gem` 是 `EquipShow_Create` 类型,子控件可能不是直接通过 `getChildByName` 获取。
建议修改为:
```lua
function npc:openWin()
-- 创造外部界面
local win_gem = GUI:Win_Create("win_gem", 0, 0, 0, 0)
GUI:LoadExport(win_gem, "playernpc/gem")
npc.ui = GUI:ui_delegate(win_gem)
GUI:addOnClickEvent(npc.ui.esc, function()
GUI:Win_Close(win_gem)
end)
for i = 1, 5 do
local gem = npc.ui["putinGem_"..i] -- 直接通过 ui_delegate 获取
if gem then
GUI:addOnClickEvent(gem, function()
SL:print("44151")
end)
else
SL:print("未找到 putinGem_"..i)
end
end
end
```
这样可以直接通过 `npc.ui` 获取已创建的 `putinGem_` 控件,确保点击事件绑定成功。
← 返回问答库