Timeline_StopAll 是什么用
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-28 22:59:10 |
👁️ 阅读: 5
`GUI:Timeline_StopAll(widget)` 是一个用于停止指定控件上所有正在运行的动画时间线(Timeline)的函数。
**功能:**
它会立即停止附加在指定控件 `widget` 上的所有通过时间线系统(如 `GUI:Timeline_FadeIn`、`GUI:Timeline_MoveTo` 等)创建的动画。
**典型应用场景:**
1. **界面关闭或重置时**:在关闭一个弹窗或者切换界面状态前,停止所有未完成的动画,避免动画残留。
2. **响应快速操作时**:例如,用户连续快速点击一个按钮,可以用它来停止前一次点击触发的动画,然后立即开始新的动画,使交互响应更干脆。
3. **中断特定动画序列**:当需要强制中断一组复杂的动画流程时使用。
**代码示例:**
```lua
-- 假设有一个正在执行入场动画的控件
local myWidget = GUI:Win_Create(...)
GUI:Timeline_FadeIn(myWidget, 1.0, function() SL:print("淡入完成") end)
-- 在某个条件下(如点击取消按钮),需要立即停止所有动画
local btnCancel = GUI:Button_Create(...)
GUI:addOnClickEvent(btnCancel, function()
-- 停止 myWidget 上的所有时间线动画
GUI:Timeline_StopAll(myWidget)
SL:print("已取消所有动画")
end)
```
**参数说明:**
* `widget` (userdata): 控件对象。需要停止其动画的控件。
**注意:**
它只对通过 `GUI:Timeline_` 系列函数创建的动画生效,对于使用 `GUI:runAction` 执行的基础动作(如 `GUI:ActionSequence`)无效。停止基础动作应使用 `GUI:stopAllActions(widget)`。
← 返回问答库