ActionEaseBackIn(action)怎么用
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-11 18:49:53 |
👁️ 阅读: 1
`ActionEaseBackIn(action)` 是一个缓冲动作函数,可以让你的动画效果先稍微后退一点,然后再加速前进,就像拉弓射箭的感觉。
**基本用法:**
```lua
-- 1. 先创建一个基础动作
local moveAction = GUI:ActionMoveTo(1.0, 100, 200) -- 移动到(100,200),用时1秒
-- 2. 给这个动作添加缓冲效果
local easeAction = GUI:ActionEaseBackIn(moveAction)
-- 3. 运行动作
GUI:runAction(yourWidget, easeAction)
```
**完整示例:**
```lua
-- 创建父窗口
local parent = GUI:Win_Create("TestWindow", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建一个按钮
local btn = GUI:Button_Create(parent, "btn_test", 100, 100, "res/public/1900000612.png")
GUI:Button_setTitleText(btn, "点击测试")
-- 添加点击事件
GUI:addOnClickEvent(btn, function()
-- 创建基础移动动作
local baseAction = GUI:ActionMoveTo(1.0, 300, 300)
-- 添加缓冲效果
local easeAction = GUI:ActionEaseBackIn(baseAction)
-- 运行动作
GUI:runAction(btn, easeAction)
SL:print("按钮开始移动啦!")
end)
```
**参数说明:**
- `action`:必须是已经创建好的动作对象,比如 `ActionMoveTo`、`ActionScaleTo` 等
- 返回值:一个新的动作对象,可以直接传给 `runAction` 执行
**使用技巧:**
1. **组合使用**:可以和其他动作组合
```lua
local seq = GUI:ActionSequence(
GUI:ActionEaseBackIn(GUI:ActionMoveTo(0.5, 200, 200)),
GUI:ActionEaseBackOut(GUI:ActionScaleTo(0.5, 1.5))
)
GUI:runAction(widget, seq)
```
2. **效果对比**:
- `ActionEaseBackIn`:先退后一点再前进(适合入场动画)
- `ActionEaseBackOut`:快速前进到终点,然后稍微后退一点(适合出场动画)
**注意:** 这个函数只改变动作的缓冲曲线,不改变动作的最终位置和持续时间。
← 返回问答库