迁移指南(Migration Guide)
数据绑定(Data Binding)取代了状态机输入(State Machine Inputs)和运行时事件监听器(Runtime Event Listeners),同时也消除了从代码直接修改文本运行(text runs)等元素的需求。
它以更灵活、更一致的系统提供更多数据类型,既用于向 Rive 发送数据,也用于响应来自 Rive 的变化。
| 输入(Inputs) | 事件(Events) | 视图模型属性(ViewModel Properties) | |
|---|---|---|---|
| 浮点数 | ✅ | ✅ | ✅ |
| 布尔值 | ✅ | ✅ | ✅ |
| 触发器(Triggers) | ✅ | ❌ | ✅ |
| 字符串(Strings) | ❌ | ✅ | ✅ |
| 枚举(Enums) | ❌ | ❌ | ✅ |
| 颜色(Colors) | ❌ | ❌ | ✅ |
| 视图模型嵌套 | ❌ | ❌ | ✅ |
| 列表(Lists) | ❌ | ❌ | ✅ |
| 图像(Images) | ❌ | ❌ | ✅ |
| 画板(Artboards) | ❌ | ❌ | ✅ |
你无需更新现有文件。输入和事件将继续正常工作。推荐在新项目和未来更新中使用数据绑定。
从已弃用功能迁移
状态机输入(State Machine Inputs)
状态机输入曾是控制动画的主要方式。
使用数据绑定后,你改为暴露视图模型属性,这些属性可以驱动状态机过渡、混合状态以及编辑器中任何可绑定的属性。
- 在编辑器中打开汉堡菜单
- 选择 Convert Inputs to View Models
- 更新运行时代码,在视图模型上设置值而非在输入上设置
通过事件与代码通信
事件曾被用于将信息从 Rive 文件发送回运行时代码。
使用数据绑定后,你改为监听视图模型属性的变化,包括触发器(trigger)和列表(list)。
为什么运行时事件监听被弃用?
事件有几个局限性:
- 难以传递动态或变化的数据
- 在嵌套画板中工作需要手动处理
- 是一次性信号而非持久值
视图模型属性始终反映最新值,并且可以直接观察。
如何迁移
不再监听事件,而是:
- 创建一个视图模型属性
- 从你的 Rive 文件更新它(通过动画、监听器或脚本)
- 在运行时订阅该属性
更多信息请参见数据绑定
在运行时更新文本运行(Text Runs)
以前,更新文本需要:
- 知道确切的名称
- 知道层级/路径
- 从代码直接访问文本运行
这种方式很脆弱,文件变更时很容易破坏。
使用数据绑定:
- 将字符串属性绑定到文本运行
- 通过视图模型更新值
这使你的运行时代码即使在文件结构变化时也能保持稳定。
何时使用数 据绑定 vs 其他功能
约束(Constraints)
约束仍获完全支持,并且在许多用例中仍然是最佳选择。
何时使用约束
在以下情况使用约束:
- 你要将一个对象直接链接到另一个
- 关系纯粹是视觉或空间的
- 你希望使用简单、纯编辑器的解决方案
何时改用数据绑定
在以下情况使用数据绑定:
- 值需要来自运行时代码
- 多个元素依赖同一个值
- 你希望引入逻辑或变换(通过转换器)
- 关系不是严格对象到对象的
💡
示例:
你可以:
- 使用约束将多个轮子的旋转链 接在一起
或者:
- 使用一个数据绑定的
rotation属性,它可以:- 在运行时控制
- 驱动所有轮子
- 其他地方也能复用(速度、效果、UI 等)
数据绑定更灵活,约束更直接。