GUI:runAction(parent, GUI:DelayTime(2))
GUI:runAction(parent,GUI:ActionFadeOut(2))
GUI:Win_SetMainHide(parent, false) 为什么没用
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-26 13:03:01 |
👁️ 阅读: 23
你的代码有几个关键问题:
1. **动作没有组合**:`GUI:DelayTime(2)`和`GUI:ActionFadeOut(2)`是分开执行的,没有形成顺序关系
2. **隐藏界面方式错误**:`GUI:Win_SetMainHide()`不是正确的关闭界面函数
3. **缺少回调函数**:淡出后没有执行关闭界面的操作
根据浮生梦老师前端课程内容,正确的实现应该是:
```lua
-- 获取当前界面
local parent = GUI:getCurrentLayer()
-- 创建动作序列:延迟2秒 -> 淡出2秒 -> 关闭界面
local sequenceAction = GUI:ActionSequence(
GUI:DelayTime(2), -- 延迟2秒
GUI:ActionFadeOut(2), -- 淡出2秒
GUI:CallFunc(function()
-- 正确的关闭界面方式
GUI:removeFromParent(parent)
end)
)
-- 执行动作序列
GUI:runAction(parent, sequenceAction)
```
**问题分析:**
1. `GUI:DelayTime()`只是延迟动作,需要和`GUI:ActionSequence()`配合使用
2. `GUI:Win_SetMainHide()`不是996引擎的标准函数,应该使用`GUI:removeFromParent()`
3. 动作必须通过`GUI:ActionSequence()`组合才能按顺序执行
这样代码就能正确实现:等待2秒 → 界面淡出2秒 → 完全关闭界面。
← 返回问答库