update method
Increments each track entry TrackEntry.getTrackTime, setting queued animations as current if needed.
Implementation
void update(double delta) {
_bindings.spine_animation_state_update(_state, delta);
final numEvents = _bindings.spine_animation_state_events_get_num_events(_events);
if (numEvents > 0) {
for (int i = 0; i < numEvents; i++) {
late final EventType type;
switch (_bindings.spine_animation_state_events_get_event_type(_events, i)) {
case 0:
type = EventType.start;
break;
case 1:
type = EventType.interrupt;
break;
case 2:
type = EventType.end;
break;
case 3:
type = EventType.complete;
break;
case 4:
type = EventType.dispose;
break;
case 5:
type = EventType.event;
break;
}
final nativeEntry = _bindings.spine_animation_state_events_get_track_entry(_events, i);
final entry = TrackEntry._(nativeEntry, this);
final nativeEvent = _bindings.spine_animation_state_events_get_event(_events, i);
final event = nativeEvent.address == nullptr.address ? null : Event._(nativeEvent);
if (_trackEntryListeners.containsKey(nativeEntry)) {
_trackEntryListeners[entry]?.call(type, entry, event);
}
if (_stateListener != null) {
_stateListener?.call(type, entry, event);
}
if (type == EventType.dispose) {
_bindings.spine_animation_state_dispose_track_entry(_state, nativeEntry);
}
}
}
_bindings.spine_animation_state_events_reset(_events);
}