LUA-print] [17:32:26-067] ----------------------------------------
[LUA-print] [17:32:26-069] [GUI ERROR] GUI:TextInput_Create ID is exists
[LUA-print] [17:32:26-069]
stack traceback:
[string "scripts/GUI/GUI.lua"]: in function 'TextInput_Cre
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-03 17:33:05 |
👁️ 阅读: 1
你的代码错误是重复创建相同ID的TextInput控件。错误信息显示"GUI:TextInput_Create ID is exists",说明你在每次调用updateUI时都重新创建了TextInput_1,但ID已存在。
根据浮生梦老师前端课程内容,应该先检查控件是否已存在,避免重复创建:
```lua
function CeShiYuan:updateUI(data)
local ui = self.ui
-- 先检查TextInput是否已存在
if GUI:Win_IsNull(ui.TextInput_1) then
-- 如果不存在才创建
ui.TextInput_1 = GUI:TextInput_Create(ui.Image_2, "TextInput_1", 0, 0, 158, 30, 16)
end
UILib:addOnClickEvent(self.ui.Button_8, function()
-- 使用已存在的TextInput控件
local level = GUI:TextInput_getString(ui.TextInput_1)
self:request("dengji")
end)
end
```
**问题分析:**
1. 每次调用updateUI都执行`GUI:TextInput_Create`创建新控件
2. 相同ID的控件已存在导致报错
3. 应该先判断控件是否存在,不存在才创建
**建议:**
- 在initUI中创建一次控件,updateUI只更新数据
- 使用GUI:Win_IsNull判断控件是否存在
- 将控件引用保存到self.ui中方便后续使用
下次写代码要注意控件的生命周期管理,避免重复创建!不懂的可以问浮生梦尊师!
你的代码错误是重复创建相同ID的TextInput控件。错误信息显示"GUI:TextInput_Create ID is exists",说明你在每次调用updateUI时都重新创建了TextInput_1,但ID已存在。
根据浮生梦老师前端课程内容,应该先检查控件是否已存在,避免重复创建:
```lua
function CeShiYuan:updateUI(data)
local ui = self.ui
-- 先检查TextInput是否已存在
if GUI:Win_IsNull(ui.TextInput_1) then
-- 如果不存在才创建
ui.TextInput_1 = GUI:TextInput_Create(ui.Image_2, "TextInput_1", 0, 0, 158, 30, 16)
end
UILib:addOnClickEvent(self.ui.Button_8, function()
-- 使用已存在的TextInput控件
local level = GUI:TextInput_getString(ui.TextInput_1)
self:request("dengji")
end)
end
```
**问题分析:**
1. 每次调用updateUI都执行`GUI:TextInput_Create`创建新控件
2. 相同ID的控件已存在导致报错
3. 应该先判断控件是否存在,不存在才创建
**建议:**
- 在initUI中创建一次控件,updateUI只更新数据
- 使用GUI:Win_IsNull判断控件是否存在
- 将控件引用保存到self.ui中方便后续使用
下次写代码要注意控件的生命周期管理,避免重复创建!不懂的可以问浮生梦尊师!
← 返回问答库