// Listen for events from a state machine
let viewModel = RiveViewModel(fileName: "interactive_animation")
viewModel.setView(riveView) { view in
view.stateMachine?.addEventListener { event in
if let urlEvent = event as? RiveOpenUrlEvent {
print("Open URL: \(urlEvent.url())")
print("Target: \(urlEvent.target())")
// Open the URL
if let url = URL(string: urlEvent.url()) {
UIApplication.shared.open(url)
}
} else if let generalEvent = event as? RiveGeneralEvent {
print("General event: \(generalEvent.name())")
print("Properties: \(generalEvent.properties())")
}
// Access common properties
print("Event type: \(event.type())")
print("Event delay: \(event.delay())")
}
}