GUI:addOnClickEvent(npc.ui.donate_btn, function()
GUI:Image_Create(npc.ui.bg, "inPut_mainBg", 165, 150, "res/public/1900000610799.png") -- 设置输入框主背景图
GUI:setContentSize(npc.ui.inPut_mainBg, 355, 165)
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-30 00:52:41 |
👁️ 阅读: 13
你遇到的问题是因为 `npc.ui.bg` 这个父节点被隐藏了,导致它下面的所有子组件(包括 `inPut_mainBg` 等)都不可见。这是GUI层级关系的正常表现。
根据浮生梦老师前端课程内容,正确的做法是:
1. 先创建好所有子组件
2. 单独控制需要显示的组件
3. 不要直接隐藏父节点
修改后的代码:
```lua
GUI:addOnClickEvent(npc.ui.donate_btn, function()
-- 先创建输入框界面
local inPut_mainBg = GUI:Image_Create(npc.ui.bg, "inPut_mainBg", 165, 150, "res/public/1900000610799.png")
GUI:setContentSize(inPut_mainBg, 355, 165)
-- 创建确定按钮
local inPut_btn1 = GUI:Button_Create(inPut_mainBg, "inPut_btn1", 160, 15, "res/public/1900001003.png")
GUI:Button_setTitleText(inPut_btn1, "确定")
-- 创建取消按钮
local inPut_btn2 = GUI:Button_Create(inPut_mainBg, "inPut_btn2", 260, 15, "res/public/1900001005.png")
GUI:Button_setTitleText(inPut_btn2, "取消")
-- 创建提示文字
GUI:Text_Create(inPut_mainBg, "inPut_text", 20, 125, 16, "#ffffff", "请输入您要捐献的数量:")
-- 创建输入框背景
local inPut_bg = GUI:Image_Create(inPut_mainBg, "inPut_bg", 95, 75, "res/public/1900015004.png")
-- 创建输入框
local inPut = GUI:TextInput_Create(inPut_bg, "inPut", 0, 0, 220, 40, 16)
GUI:TextInput_setInputMode(inPut, 5)
-- 初始隐藏输入框界面,而不是隐藏父节点
GUI:setVisible(inPut_mainBg, false)
-- 点击捐赠按钮时显示输入框
GUI:setVisible(inPut_mainBg, true)
-- 确定按钮点击事件
GUI:addOnClickEvent(inPut_btn1, function()
local sure_bg = GUI:Image_Create(inPut_mainBg, "sure_bg", -80, 20, "res/public_win32/000360.png")
-- 这里可以添加确认逻辑
end)
-- 取消按钮点击事件
GUI:addOnClickEvent(inPut_btn2, function()
-- 隐藏输入框界面
GUI:setVisible(inPut_mainBg, false)
end)
end)
```
**关键修改点:**
1. 将 `GUI:setVisible(npc.ui.bg, false)` 改为 `GUI:setVisible(inPut_mainBg, false)`
2. 只控制输入框界面的显示/隐藏,不影响其他组件
3. 为按钮添加了标题文字,让界面更友好
这样修改后,点击捐赠按钮会显示输入界面,点击取消会隐藏输入界面,而不会影响 `npc.ui.bg` 下的其他组件。
← 返回问答库