flutter:“RuntimeArtboard”的实例(-1)-> Ani1 flutter:“RuntimeNestedArtboard”的实例 (2) -> Ani2
void _onRiveInit(Artboard artboard) {
var controller = StateMachineController.fromArtboard(
artboard,
'SM1',
onStateChange: _onStateChange,
);
artboard.addController(controller!);
_var1 = controller.findInput<double>('var1'); // its in parent board
_var2 = controller.findInput<double>('var2'); // its in nested board
setState(() {
_stateMachineController = controller;
});
}
当我尝试访问 _var2.values 时,它显示为 null。 _var1 值很好。
第二个画板添加到第一个画板。
如何访问 _var2 值并更改其值。
您可以修改您的_onRiveInit函数以正确访问和修改 父画板和嵌套画板中的值:
void _onRiveInit(Artboard artboard) {
var parentController = StateMachineController.fromArtboard(
artboard,
'SM1',
onStateChange: _onStateChange,
);
artboard.addController(parentController!);
_var1 = parentController.findInput<double>('var1');
RuntimeNestedArtboard? nestedArtboard = artboard as
RuntimeNestedArtboard;
if (nestedArtboard != null && nestedArtboard.childArtboard != null) {
var nestedController = StateMachineController.fromArtboard(
nestedArtboard.childArtboard!,
'SM1',
onStateChange: _onStateChange,
);
nestedArtboard.childArtboard!.addController(nestedController!);
_var2 = nestedController.findInput<double>('var2');
}
setState(() {
_stateMachineController = parentController;
});
}