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:54:07 |
👁️ 阅读: 6
你遇到的问题是因为 `npc.ui.bg` 是 `npc.ui.donate_btn` 的父节点,隐藏父节点会导致所有子组件一起隐藏。
根据浮生梦老师前端课程内容,你需要重新组织节点结构。**不要**把 `inPut_mainBg` 等组件创建在 `npc.ui.bg` 下面,而是应该创建一个独立的父窗口来承载输入框界面。
以下是修改后的代码示例:
```lua
GUI:addOnClickEvent(npc.ui.donate_btn, function()
-- 创建独立的输入框窗口,而不是作为npc.ui.bg的子节点
local inputWindow = GUI:Win_Create("DonateInputWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建背景图
local inPut_mainBg = GUI:Image_Create(inputWindow, "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")
-- 创建取消按钮
local inPut_btn2 = GUI:Button_Create(inPut_mainBg, "inPut_btn2", 260, 15, "res/public/1900001005.png")
-- 创建提示文字
local inPut_text = 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(inputWindow, false)
-- 点击捐赠按钮时显示输入窗口
GUI:setVisible(inputWindow, 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:Win_Close(inputWindow)
end)
end)
```
**关键修改点:**
1. 使用 `GUI:Win_Create()` 创建独立的窗口作为输入框的父容器
2. 所有输入框相关组件都创建在这个新窗口下,与 `npc.ui.bg` 分离
3. 通过 `GUI:setVisible(inputWindow, true/false)` 控制输入框的显示隐藏
4. 取消按钮使用 `GUI:Win_Close()` 关闭窗口
这样修改后,隐藏 `npc.ui.bg` 不会影响输入框的显示,点击捐赠按钮时输入框会独立弹出。
← 返回问答库