跳到主要内容

监听器

监听器让你可以响应 Rive 文件中的交互、属性变化和其他事件。当监听器被触发时,它可以执行更新属性值、触发 Rive 事件或运行其他逻辑等操作。

监听器由三个主要部分组成:

  • 目标:监听器要监听的对象
  • 监听:需要发生什么才会触发监听器
  • 动作:触发后会发生什么

使用监听器可以创建能够响应用户输入和状态变化的动态体验。

创建监听器

  1. 选择你希望监听器响应的元素。

    如果要监听视图模型属性变化或 Rive 事件,请改为选择画板或嵌套组件。

  2. Animations 面板中,点击 State Machine 旁边的图标以显示监听器。

  3. 点击 + 图标创建新的监听器,并选择该监听器应执行的动作。

  4. 选中监听器后,在右侧边栏中设置其 TargetListen To 和其他选项。

选中监听器后,你会在右侧边栏中看到它的选项。

目标

Target 决定监听器要监听什么。目标可以是场景中的元素、画板或嵌套组件。

当你想监听元素上的交互(例如点击或拖拽)时,请使用元素作为目标。当你想监听视图模型属性变化、Rive 事件或属于该画板/组件的其他事件时,请使用画板或嵌套组件作为目标。

Opaque Target

Opaque Target 控制指针事件是在此监听器的命中区域停止,还是继续传递到其后方的元素。

启用 Opaque Target 时,指针事件会在目标处停止。禁用时,指针事件可以穿透目标,并触发下方的其他监听器。

监听

Listen to 是监听器要监视的条件。当条件满足时,监听器会被触发。

Listen To说明
View Model Property Change*每当所选视图模型属性发生变化时触发。**
Rive Event*当 Rive 事件被触发时触发。
Pointer Enter当指针进入目标区域时触发。
Pointer Exit当指针离开目标区域时触发。
Pointer Move当指针在目标区域上移动时反复触发。
Pointer Down当指针在目标上按下时触发。
Pointer Up当指针在目标上释放时触发。
Click当目标被点击或轻点时触发。

* 当监听器目标是画板或嵌套组件时可用。
** View Model Property Change 监听器会在所选属性发生任何变化时触发。你不能指定期望值或变化方向。例如,Boolean 监听器会在值从 true 变为 false 或从 false 变为 true 时触发。

Pointer Exit 只会在 Rive 能够读取指针位置时触发。如果目标接触到画布或容器边缘,将指针移出容器可能不会触发 Pointer Exit,因为指针已经离开了 Rive 正在追踪的区域。

我们强烈建议使用 Data Binding 在画板之间通信,而不是依赖嵌套 Rive 事件。

监听器动作

监听器动作会在监听器被触发时运行。

动作包括:

  • 更改视图模型属性
  • 将元素对齐到目标
  • 上报事件
  • 触发脚本动作
  • 触发 Rive 事件
  • 更新输入值(已弃用)

要添加监听器动作,请点击 State Machine Graph 下方面板中的 + 图标。

你可以为单个监听器添加多个动作。

💡

你可以在监听器动作中使用数据绑定值。

Align Target

Align Target 动作会在监听器区域内触发监听器时,定位一个对象,使其跟随指针。

使用 Target Picker 选择你想要对齐的对象。

启用 Preserve Offset 可在动作触发时保持对象与指针之间的原始距离。禁用 Preserve Offset 时,对象会直接对齐到指针。