跳到主要内容

迁移指南(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)​

状态机输入曾是控制动画的主要方式。

使用数据绑定后,你改为暴露视图模型属性,这些属性可以驱动状态机过渡、混合状态以及编辑器中任何可绑定的属性。

  1. 在编辑器中打开汉堡菜单
  2. 选择 Convert Inputs to View Models
  3. 更新运行时代码,在视图模型上设置值而非在输入上设置

为什么状态机输入被弃用?

输入仅限于驱动状态机过渡,且必须按原样使用。

视图模型属性:

  • 可以驱动的不只是过渡
  • 可以通过转换器进行变换
  • 可以在文件中的多个部分之间共享
  • 提供更灵活、可扩展的数据模型

通过事件与代码通信​

事件曾被用于将信息从 Rive 文件发送回运行时代码。

使用数据绑定后,你改为监听视图模型属性的变化,包括触发器(trigger)和列表(list)。

为什么运行时事件监听被弃用?

事件有几个局限性:

  • 难以传递动态或变化的数据
  • 在嵌套画板中工作需要手动处理
  • 是一次性信号而非持久值

视图模型属性始终反映最新值,并且可以直接观察。

如何迁移​

不再监听事件,而是:

  • 创建一个视图模型属性
  • 从你的 Rive 文件更新它(通过动画、监听器或脚本)
  • 在运行时订阅该属性

更多信息请参见数据绑定


在运行时更新文本运行(Text Runs)​

以前,更新文本需要:

  • 知道确切的名称
  • 知道层级/路径
  • 从代码直接访问文本运行

这种方式很脆弱,文件变更时很容易破坏。

使用数据绑定:

  • 将字符串属性绑定到文本运行
  • 通过视图模型更新值

这使你的运行时代码即使在文件结构变化时也能保持稳定。

何时使用数据绑定 vs 其他功能​

约束(Constraints)​

约束仍获完全支持,并且在许多用例中仍然是最佳选择。

何时使用约束​

在以下情况使用约束:

  • 你要将一个对象直接链接到另一个
  • 关系纯粹是视觉或空间的
  • 你希望使用简单、纯编辑器的解决方案

何时改用数据绑定​

在以下情况使用数据绑定:

  • 值需要来自运行时代码
  • 多个元素依赖同一个值
  • 你希望引入逻辑或变换(通过转换器)
  • 关系不是严格对象到对象的
💡

示例:

你可以:

  • 使用约束将多个轮子的旋转链接在一起

或者:

  • 使用一个数据绑定的 rotation 属性,它可以:
    • 在运行时控制
    • 驱动所有轮子
    • 其他地方也能复用(速度、效果、UI 等)

数据绑定更灵活,约束更直接。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群