Rive 事件
⚠️ 已弃用:请使用数据绑定代替事件
在运行时监听和响应 Rive 事件。
Event 是一个密封类,有两个选项:
OpenUrlEventGeneralEvent
你需要在 StateMachine 实例上注册事件监听器:
final controller = RiveWidgetController(_riveFile!);
controller?.stateMachine.addEventListener(_onRiveEvent);
void _onRiveEvent(Event event) {
// 对事件执行某些操作
}
访问 properties 返回 Map<String, CustomProperty>。CustomProperty 也是一个密封类,有以下选项:
CustomNumberPropertyCustomBooleanPropertyCustomStringProperty
所有这些都具有 value 字段。在 Event 类上,有便捷的访问器:
// 便捷访问器
event.property(name); // 返回 CustomProperty
event.numberProperty(name); // 返回 CustomNumberProperty
event.booleanProperty(name); // 返回 CustomBooleanProperty
event.stringProperty(name); // 返回 CustomStringProperty
重要的是在不再需要时移除事件监听器以避免内存泄漏:
stateMachine.removeEventListener(_onRiveEvent);
或者事件监听器会在 StateMachine 被释放时同时被释放。
stateMachine.dispose();
如果你释放 RiveWidgetController,那也会释放 StateMachine 并移除所有事件监听器。