要关闭当前界面,可以使用以下方法:
```lua
-- 获取当前界面的根节点(通常通过tag或ID获取)
local currentLayer = GUI:getChildByName(parentNode, "Layer") -- 假设你的界面层叫"Layer"
-- 方法1:直接移除节点
if currentLayer and not GUI:Win_IsNull(currentLayer) then
GUI:removeFromParent(currentLayer)
end
-- 方法2:通过关闭按钮触发(更常见的做法)
-- 通常在界面的btn_close按钮的点击事件中处理
local btn_close = GUI:getChildByName(img_bg, "btn_close")
if btn_close then
GUI:addOnClickEvent(btn_close, function()
local parent = GUI:getParent(btn_close)
if parent then
local layer = GUI:getParent(parent) -- 获取Layer节点
if layer and not GUI:Win_IsNull(layer) then
GUI:removeFromParent(layer)
end
end
end)
end
```
**说明:**
1. 根据浮生梦老师前端课程内容,界面通常以`Layer`为根节点
2. 使用`GUI:removeFromParent(widget)`可以安全地移除界面
3. 在移除前建议使用`GUI:Win_IsNull(widget)`检查节点是否有效
4. 关闭按钮通常命名为`btn_close`,可以在其点击事件中处理关闭逻辑
**注意:** 如果界面有动画效果,可以在移除前添加淡出动画:
```lua
-- 添加淡出效果
GUI:runAction(layer, GUI:ActionSequence(
GUI:ActionFadeTo(0.3, 0),
GUI:CallFunc(function()
if not GUI:Win_IsNull(layer) then
GUI:removeFromParent(layer)
end
end)
))
```
这样就能优雅地关闭当前界面了!