Event callbacks

The DotLottieAnimation instance emits the following events that can be listened to via a class implementing the Observer protocol:

class YourDotLottieObserver: Observer {
func onComplete() {
// Animation completed
}
func onFrame(frameNo: Float) {
// New frame rendered
}
func onLoad() {
// Animation loaded successfully
}
func onLoadError() {
// Animation failed to load
}
func onLoop(loopCount: UInt32) {
// Animation completed a loop
}
func onPause() {
// Animation paused
}
func onPlay() {
// Animation started playing
}
func onRender(frameNo: Float) {
// Frame rendered
}
func onStop() {
// Animation stopped
}
}
// State Machine Observer
class YourStateMachineObserver: StateMachineObserver {
func onStart() {
// State machine started
}
func onStop() {
// State machine stopped
}
func onTransition(previousState: String, newState: String) {
// State machine transitioned from previousState to newState
}
func onStateEntered(enteringState: String) {
// Entered a new state
}
func onStateExit(leavingState: String) {
// Exited a state
}
func onError(message: String) {
// Error occurred in state machine
}
func onCustomEvent(message: String) {
// Custom event fired from state machine
}
func onInputFired(inputName: String) {
// Input was fired in state machine
}
func onBooleanInputValueChange(inputName: String, oldValue: Bool, newValue: Bool) {
// Boolean input value changed
}
func onNumericInputValueChange(inputName: String, oldValue: Float, newValue: Float) {
// Numeric input value changed
}
func onStringInputValueChange(inputName: String, oldValue: String, newValue: String) {
// String input value changed
}
}
// In your view code
var animation = DotLottieAnimation(...)
var animationView = DotLottieView(dotLottie: animation)
var myObserver = YourDotLottieObserver()
var myStateMachineObserver = YourStateMachineObserver()
// Subscribe to animation events
animation.subscribe(observer: myObserver)
// Subscribe to state machine events (if using state machines)
animation.stateMachineSubscribe(myStateMachineObserver)

State Machine Events

The StateMachineObserver protocol provides the following callbacks:

EventDescription
onStart()Called when state machine starts
onStop()Called when state machine stops
onTransition(previousState: String, newState: String)Called when transitioning between states
onStateEntered(enteringState: String)Called when entering a new state
onStateExit(leavingState: String)Called when exiting a state
onError(message: String)Called when an error occurs in the state machine
onCustomEvent(message: String)Called when a custom event is fired
onInputFired(inputName: String)Called when an input is fired
onBooleanInputValueChange(inputName, oldValue, newValue)Called when a boolean input value changes
onNumericInputValueChange(inputName, oldValue, newValue)Called when a numeric input value changes
onStringInputValueChange(inputName, oldValue, newValue)Called when a string input value changes

Note: There’s also a StateMachineInternalObserver protocol used internally for handling URL opening events and other internal state machine messages. This is automatically handled by the framework and doesn’t require manual implementation.

Animation Observer Events

EventDescription
onCompleteEmitted when the animation completes.
onFrame(frameNo: Float)Emitted when the animation reaches a new frame.
onLoadEmitted when the animation is loaded.
onLoadErrorEmitted when the animation failed to load.
onLoop(loopCount: UInt32)Emitted when the animation completes a loop.
onPauseEmitted when the animation is paused.
onPlayEmitted when the animation starts playing.
onRender(frameNo: Float)Emitted when the frame is rendered.
onStopEmitted when the animation is stopped.