跳到主要内容

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

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