跳到主要内容

替代式 Widget 接入(Alternative Widget Setup)

说明(Note):本页方法基于旧 API(如 RiveFile / RiveAnimation / Rive)。新项目建议优先使用 Flutter 运行时(Flutter) 中的 RiveWidget / RiveWidgetBuilder

适用场景

当你需要在 Artboard 首次渲染前就先挂好控制器(如状态机控制器)时,可使用更底层的手动流程。

手动流程

  1. rootBundle 读取 .riv bytes
  2. RiveFile 解析
  3. 取目标 Artboard
  4. (可选)挂载控制器
  5. 将 Artboard 传给渲染 Widget

示例:

rootBundle.load('assets/new_file.riv').then((data) async {
final file = RiveFile.import(data);
final artboard = file.mainArtboard;

final controller = StateMachineController.fromArtboard(artboard, 'SomeStateMachineName');
if (controller != null) {
artboard.addController(controller);
}

setState(() => _riveArtboard = artboard);
});

渲染时注意 instance()

Rive(
artboard: _riveArtboard!.instance(),
)

注意(Important):若不调用 instance(),组件实例在画布中的行为可能不符合预期。