SL:print("打开沙城捐献界面")
local npc = {}
local function networkCB(msgID, p1, p2, p3, msgData)
SL:print("===== 收到后端消息 =====")
SL:print("消息ID: " .. tostring(msgID))
SL:print("参数1: " .. tostring(p1))
SL:print("参数2: " .. tostring(p2))
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-30 02:19:04 |
👁️ 阅读: 11
问题出在变量作用域上。你在二级界面的 `inPut_btn1` 点击事件中,直接使用了 `inputMoney` 这个变量,但此时这个变量是在二级界面创建时获取的输入框内容,而且获取的是初始值(空字符串)。点击事件发生时,用户可能已经输入了新内容,但你没有重新获取。
你需要修改二级界面的确定按钮点击事件,在点击时重新获取输入框的当前值。修改如下:
```lua
-- 设置二级确定按钮内容
GUI:addOnClickEvent(inPut_btn1, function()
-- 在这里重新获取输入框的当前值
local currentInputMoney = GUI:TextInput_getString(inPut)
local win_makeSure = GUI:Win_Create("win_makeSure", 0, 0, 0, 0) -- 三级输入框界面
local thirdBg = GUI:Image_Create(win_makeSure, "inPut_mainBg", 300, 400, "res/public_win32/bg_npc_01.png") -- 三级确定按钮背景
GUI:Text_Create(thirdBg, "makeSure_text", 20, 125, 16, "#ffffff", "您确定要捐献"..currentInputMoney.."个金币吗")
local makeSure_btn1 = GUI:Button_Create(thirdBg, "makeSure_btn1", 200, 15, "res/public/1900001003.png") -- 设置三级确定按钮
-- 设置三级确认按钮内容
GUI:addOnClickEvent(makeSure_btn1, function()
SL:SendLuaNetMsg(1017, 17, 1, 0, "沙城捐献")
end)
local makeSure_btn2 = GUI:Button_Create(thirdBg, "makeSure_btn2", 330, 15, "res/public/1900001005.png") -- 设置三级取消按钮
-- 关闭三级确认界面
GUI:addOnClickEvent(makeSure_btn2, function()
GUI:Win_Close(win_makeSure)
end)
end)
```
关键修改:将原来的 `inputMoney` 改为在点击事件内部重新获取的 `currentInputMoney`,这样就能获取到用户最新输入的值了。
另外,建议在获取输入框内容后做一下非空判断,避免用户没有输入就点击确定按钮:
```lua
local currentInputMoney = GUI:TextInput_getString(inPut)
if currentInputMoney == nil or currentInputMoney == "" then
SL:ShowSystemTips("请输入捐献数量")
return
end
```
这样修改后,三级界面就能正确显示用户输入的数量了。
← 返回问答库