ActionRemoveSelf()怎么用
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-10 01:16:21 |
👁️ 阅读: 0
根据浮生梦老师的前端课程内容,`GUI:ActionRemoveSelf()` 是一个动作函数,用于在动作序列执行完成后自动移除控件节点。它通常与其他动作组合使用。
**基本用法:**
```lua
-- 创建一个动作序列:延迟2秒后移除自身
local sequence = GUI:ActionSequence(
GUI:DelayTime(2.0),
GUI:ActionRemoveSelf()
)
GUI:runAction(widget, sequence)
```
**完整示例(来自资料3):**
```lua
-- 创建一个节点,执行淡出动画后自动移除
local sequence = GUI:ActionSequence(
GUI:DelayTime(2.5),
GUI:ActionFadeOut(0.5),
GUI:ActionRemoveSelf(),
GUI:CallFunc(function()
SL:print("节点已移除")
end)
)
GUI:runAction(node, sequence)
```
**另一个示例(来自资料4):**
```lua
-- 特效移动后移除
GUI:runAction(sfx,
GUI:ActionSequence(
GUI:ActionMoveBy(0.3, x, y),
GUI:CallFunc(function()
-- 创建另一个特效
local handle = GUI:Effect_Create(parent, "effect_2", x, y, 0, 23, 0, 0, 0, 1)
end),
GUI:ActionRemoveSelf() -- 移动完成后移除原特效
)
)
```
**注意事项:**
1. `GUI:ActionRemoveSelf()` 必须放在动作序列中,通过 `GUI:runAction()` 执行
2. 移除后会调用控件的 `removeFromParent` 方法
3. 通常与 `GUI:DelayTime()`、`GUI:ActionFadeOut()` 等动作组合使用
4. 可以在移除前通过 `GUI:CallFunc()` 执行回调函数
这个函数非常有用,可以用于临时提示、特效动画等需要自动清理的场景。
← 返回问答库