ActionScaleBy(time, ratio, …)ActionScaleTo(time, ratio, …) 这两个有什么区别?
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-29 21:56:08 |
👁️ 阅读: 0
这两个动作都是缩放动画,但有一个重要区别:
**ActionScaleTo(time, ratio)** - 绝对缩放
- 将控件直接缩放到指定的比例
- 比如当前控件是原始大小(1.0),执行`ActionScaleTo(0.5, 2.0)`会直接放大到2倍大小
**ActionScaleBy(time, ratio)** - 相对缩放
- 在控件当前比例的基础上进行缩放
- 比如当前控件已经放大到1.5倍,执行`ActionScaleBy(0.5, 0.5)`会变成1.5×0.5=0.75倍
简单说:
- **To**:直接设置最终值
- **By**:在当前值基础上增加/减少
举个例子:
```lua
-- 假设控件当前是原始大小(1.0)
GUI:runAction(widget, GUI:ActionScaleTo(0.5, 2.0)) -- 0.5秒后变成2倍大小
-- 假设控件当前已经是2倍大小
GUI:runAction(widget, GUI:ActionScaleBy(0.5, 0.5)) -- 0.5秒后变成1倍大小(2.0×0.5=1.0)
```
这个"To"和"By"的区别在移动、旋转等动作中也是一样的逻辑哦!
← 返回问答库