跳到主要内容

输入

⚠️ 已弃用:请使用数据绑定代替输入来控制 Rive 动画

在运行时控制输入以驱动状态机行为。

StateMachine 实例中获取输入。

通过 RiveWidgetController 直接访问状态机:

final riveController = RiveWidgetController(riveFile);
final stateMachine = riveController.stateMachine;

final myTrigger = stateMachine.trigger('myTrigger');
final myBool = stateMachine.boolean('myBool');
final myNumber = stateMachine.number('myNumber');

与输入交互:

myTrigger.fire(); // 触发器输入
myBool.value = true; // 设置布尔输入
myNumber.value = 42.0; // 设置数字输入

使用完毕后释放输入:

myTrigger.dispose();
myBool.dispose();
myNumber.dispose();

状态机由控制器拥有。当你释放控制器时,状态机也会被释放。

controller.dispose();

嵌套输入

访问位于画板或组件实例内更深层嵌套的状态机中的输入。

要设置上述示例中的 Volume 输入:

// 从状态机获取名为 'volume' 的嵌套输入
final controller = RiveWidgetController(riveFile);
final stateMachine = controller.stateMachine;
final volumeInput = stateMachine.number('volume', path: 'Volume Molecule/Volume Component')!;
volumeInput.value = 80.0;

所有选项:

  • number(name, path: 'path/to/input')
  • bool(name, path: 'path/to/input')
  • trigger(name, path: 'path/to/input')