mirror of
https://github.com/rive-app/rive-flutter.git
synced 2025-06-23 07:18:17 +08:00
Rename events to listeners.
This commit is contained in:
@ -17,9 +17,9 @@ export 'package:rive/src/core/importers/keyed_object_importer.dart';
|
||||
export 'package:rive/src/core/importers/keyed_property_importer.dart';
|
||||
export 'package:rive/src/core/importers/layer_state_importer.dart';
|
||||
export 'package:rive/src/core/importers/linear_animation_importer.dart';
|
||||
export 'package:rive/src/core/importers/state_machine_event_importer.dart';
|
||||
export 'package:rive/src/core/importers/state_machine_importer.dart';
|
||||
export 'package:rive/src/core/importers/state_machine_layer_importer.dart';
|
||||
export 'package:rive/src/core/importers/state_machine_listener_importer.dart';
|
||||
export 'package:rive/src/core/importers/state_transition_importer.dart';
|
||||
export 'package:rive/src/generated/rive_core_context.dart';
|
||||
export 'package:rive/src/input_changes.dart';
|
||||
|
@ -1,14 +0,0 @@
|
||||
import 'package:rive/src/core/importers/artboard_import_stack_object.dart';
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
|
||||
class StateMachineEventImporter extends ArtboardImportStackObject {
|
||||
final StateMachineEvent event;
|
||||
StateMachineEventImporter(this.event);
|
||||
|
||||
void addInputChange(EventInputChange change) {
|
||||
// Other state machine importers do this, do we really need it?
|
||||
// event.context.addObject(change);
|
||||
event.internalAddInputChange(change);
|
||||
}
|
||||
}
|
14
lib/src/core/importers/state_machine_listener_importer.dart
Normal file
14
lib/src/core/importers/state_machine_listener_importer.dart
Normal file
@ -0,0 +1,14 @@
|
||||
import 'package:rive/src/core/importers/artboard_import_stack_object.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
|
||||
class StateMachineListenerImporter extends ArtboardImportStackObject {
|
||||
final StateMachineListener event;
|
||||
StateMachineListenerImporter(this.event);
|
||||
|
||||
void addInputChange(ListenerInputChange change) {
|
||||
// Other state machine importers do this, do we really need it?
|
||||
// event.context.addObject(change);
|
||||
event.internalAddInputChange(change);
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/event_trigger_change_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
|
||||
abstract class EventTriggerChangeBase extends EventInputChange {
|
||||
static const int typeKey = 115;
|
||||
@override
|
||||
int get coreType => EventTriggerChangeBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes =>
|
||||
{EventTriggerChangeBase.typeKey, EventInputChangeBase.typeKey};
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/event_bool_change_base.dart.
|
||||
/// lib/src/generated/animation/listener_bool_change_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
|
||||
abstract class EventBoolChangeBase extends EventInputChange {
|
||||
abstract class ListenerBoolChangeBase extends ListenerInputChange {
|
||||
static const int typeKey = 117;
|
||||
@override
|
||||
int get coreType => EventBoolChangeBase.typeKey;
|
||||
int get coreType => ListenerBoolChangeBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes =>
|
||||
{EventBoolChangeBase.typeKey, EventInputChangeBase.typeKey};
|
||||
{ListenerBoolChangeBase.typeKey, ListenerInputChangeBase.typeKey};
|
||||
|
||||
/// --------------------------------------------------------------------------
|
||||
/// Value field with key 228.
|
||||
@ -18,7 +18,7 @@ abstract class EventBoolChangeBase extends EventInputChange {
|
||||
int _value = valueInitialValue;
|
||||
static const int valuePropertyKey = 228;
|
||||
|
||||
/// Value to set the input to when the event occurs.
|
||||
/// Value to set the input to when the listener occurs.
|
||||
int get value => _value;
|
||||
|
||||
/// Change the [_value] field value.
|
||||
@ -37,7 +37,7 @@ abstract class EventBoolChangeBase extends EventInputChange {
|
||||
void valueChanged(int from, int to);
|
||||
|
||||
@override
|
||||
void copy(covariant EventBoolChangeBase source) {
|
||||
void copy(covariant ListenerBoolChangeBase source) {
|
||||
super.copy(source);
|
||||
_value = source._value;
|
||||
}
|
@ -1,15 +1,15 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/event_input_change_base.dart.
|
||||
/// lib/src/generated/animation/listener_input_change_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/core/core.dart';
|
||||
|
||||
abstract class EventInputChangeBase<T extends CoreContext> extends Core<T> {
|
||||
abstract class ListenerInputChangeBase<T extends CoreContext> extends Core<T> {
|
||||
static const int typeKey = 116;
|
||||
@override
|
||||
int get coreType => EventInputChangeBase.typeKey;
|
||||
int get coreType => ListenerInputChangeBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes => {EventInputChangeBase.typeKey};
|
||||
Set<int> get coreTypes => {ListenerInputChangeBase.typeKey};
|
||||
|
||||
/// --------------------------------------------------------------------------
|
||||
/// InputId field with key 227.
|
||||
@ -36,7 +36,7 @@ abstract class EventInputChangeBase<T extends CoreContext> extends Core<T> {
|
||||
void inputIdChanged(int from, int to);
|
||||
|
||||
@override
|
||||
void copy(covariant EventInputChangeBase source) {
|
||||
void copy(covariant ListenerInputChangeBase source) {
|
||||
_inputId = source._inputId;
|
||||
}
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/event_number_change_base.dart.
|
||||
/// lib/src/generated/animation/listener_number_change_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
|
||||
abstract class EventNumberChangeBase extends EventInputChange {
|
||||
abstract class ListenerNumberChangeBase extends ListenerInputChange {
|
||||
static const int typeKey = 118;
|
||||
@override
|
||||
int get coreType => EventNumberChangeBase.typeKey;
|
||||
int get coreType => ListenerNumberChangeBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes =>
|
||||
{EventNumberChangeBase.typeKey, EventInputChangeBase.typeKey};
|
||||
{ListenerNumberChangeBase.typeKey, ListenerInputChangeBase.typeKey};
|
||||
|
||||
/// --------------------------------------------------------------------------
|
||||
/// Value field with key 229.
|
||||
@ -18,7 +18,7 @@ abstract class EventNumberChangeBase extends EventInputChange {
|
||||
double _value = valueInitialValue;
|
||||
static const int valuePropertyKey = 229;
|
||||
|
||||
/// Value to set the input to when the event occurs.
|
||||
/// Value to set the input to when the listener occurs.
|
||||
double get value => _value;
|
||||
|
||||
/// Change the [_value] field value.
|
||||
@ -37,7 +37,7 @@ abstract class EventNumberChangeBase extends EventInputChange {
|
||||
void valueChanged(double from, double to);
|
||||
|
||||
@override
|
||||
void copy(covariant EventNumberChangeBase source) {
|
||||
void copy(covariant ListenerNumberChangeBase source) {
|
||||
super.copy(source);
|
||||
_value = source._value;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/listener_trigger_change_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
|
||||
abstract class ListenerTriggerChangeBase extends ListenerInputChange {
|
||||
static const int typeKey = 115;
|
||||
@override
|
||||
int get coreType => ListenerTriggerChangeBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes =>
|
||||
{ListenerTriggerChangeBase.typeKey, ListenerInputChangeBase.typeKey};
|
||||
}
|
70
lib/src/generated/animation/state_machine_listener_base.dart
Normal file
70
lib/src/generated/animation/state_machine_listener_base.dart
Normal file
@ -0,0 +1,70 @@
|
||||
/// Core automatically generated
|
||||
/// lib/src/generated/animation/state_machine_listener_base.dart.
|
||||
/// Do not modify manually.
|
||||
|
||||
import 'package:rive/src/rive_core/animation/state_machine_component.dart';
|
||||
|
||||
abstract class StateMachineListenerBase extends StateMachineComponent {
|
||||
static const int typeKey = 114;
|
||||
@override
|
||||
int get coreType => StateMachineListenerBase.typeKey;
|
||||
@override
|
||||
Set<int> get coreTypes =>
|
||||
{StateMachineListenerBase.typeKey, StateMachineComponentBase.typeKey};
|
||||
|
||||
/// --------------------------------------------------------------------------
|
||||
/// TargetId field with key 224.
|
||||
static const int targetIdInitialValue = 0;
|
||||
int _targetId = targetIdInitialValue;
|
||||
static const int targetIdPropertyKey = 224;
|
||||
|
||||
/// Identifier used to track the object use as a target fo this listener.
|
||||
int get targetId => _targetId;
|
||||
|
||||
/// Change the [_targetId] field value.
|
||||
/// [targetIdChanged] will be invoked only if the field's value has changed.
|
||||
set targetId(int value) {
|
||||
if (_targetId == value) {
|
||||
return;
|
||||
}
|
||||
int from = _targetId;
|
||||
_targetId = value;
|
||||
if (hasValidated) {
|
||||
targetIdChanged(from, value);
|
||||
}
|
||||
}
|
||||
|
||||
void targetIdChanged(int from, int to);
|
||||
|
||||
/// --------------------------------------------------------------------------
|
||||
/// ListenerTypeValue field with key 225.
|
||||
static const int listenerTypeValueInitialValue = 0;
|
||||
int _listenerTypeValue = listenerTypeValueInitialValue;
|
||||
static const int listenerTypeValuePropertyKey = 225;
|
||||
|
||||
/// Listener type (hover, click, etc).
|
||||
int get listenerTypeValue => _listenerTypeValue;
|
||||
|
||||
/// Change the [_listenerTypeValue] field value.
|
||||
/// [listenerTypeValueChanged] will be invoked only if the field's value has
|
||||
/// changed.
|
||||
set listenerTypeValue(int value) {
|
||||
if (_listenerTypeValue == value) {
|
||||
return;
|
||||
}
|
||||
int from = _listenerTypeValue;
|
||||
_listenerTypeValue = value;
|
||||
if (hasValidated) {
|
||||
listenerTypeValueChanged(from, value);
|
||||
}
|
||||
}
|
||||
|
||||
void listenerTypeValueChanged(int from, int to);
|
||||
|
||||
@override
|
||||
void copy(covariant StateMachineListenerBase source) {
|
||||
super.copy(source);
|
||||
_targetId = source._targetId;
|
||||
_listenerTypeValue = source._listenerTypeValue;
|
||||
}
|
||||
}
|
@ -8,8 +8,8 @@ import 'package:rive/src/core/field_types/core_string_type.dart';
|
||||
import 'package:rive/src/core/field_types/core_uint_type.dart';
|
||||
import 'package:rive/src/generated/animation/blend_animation_base.dart';
|
||||
import 'package:rive/src/generated/animation/cubic_interpolator_base.dart';
|
||||
import 'package:rive/src/generated/animation/event_input_change_base.dart';
|
||||
import 'package:rive/src/generated/animation/keyframe_base.dart';
|
||||
import 'package:rive/src/generated/animation/listener_input_change_base.dart';
|
||||
import 'package:rive/src/generated/animation/nested_linear_animation_base.dart';
|
||||
import 'package:rive/src/generated/animation/state_machine_component_base.dart';
|
||||
import 'package:rive/src/generated/animation/transition_condition_base.dart';
|
||||
@ -41,9 +41,6 @@ import 'package:rive/src/rive_core/animation/blend_state_direct.dart';
|
||||
import 'package:rive/src/rive_core/animation/blend_state_transition.dart';
|
||||
import 'package:rive/src/rive_core/animation/cubic_interpolator.dart';
|
||||
import 'package:rive/src/rive_core/animation/entry_state.dart';
|
||||
import 'package:rive/src/rive_core/animation/event_bool_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/event_number_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/event_trigger_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/exit_state.dart';
|
||||
import 'package:rive/src/rive_core/animation/keyed_object.dart';
|
||||
import 'package:rive/src/rive_core/animation/keyed_property.dart';
|
||||
@ -52,13 +49,16 @@ import 'package:rive/src/rive_core/animation/keyframe_color.dart';
|
||||
import 'package:rive/src/rive_core/animation/keyframe_double.dart';
|
||||
import 'package:rive/src/rive_core/animation/keyframe_id.dart';
|
||||
import 'package:rive/src/rive_core/animation/linear_animation.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_bool_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_number_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_trigger_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/nested_remap_animation.dart';
|
||||
import 'package:rive/src/rive_core/animation/nested_simple_animation.dart';
|
||||
import 'package:rive/src/rive_core/animation/nested_state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_bool.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_layer.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_number.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_trigger.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_transition.dart';
|
||||
@ -132,8 +132,6 @@ class RiveCoreContext {
|
||||
return Node();
|
||||
case NestedArtboardBase.typeKey:
|
||||
return NestedArtboard();
|
||||
case EventNumberChangeBase.typeKey:
|
||||
return EventNumberChange();
|
||||
case AnimationBase.typeKey:
|
||||
return Animation();
|
||||
case LinearAnimationBase.typeKey:
|
||||
@ -142,8 +140,6 @@ class RiveCoreContext {
|
||||
return NestedSimpleAnimation();
|
||||
case AnimationStateBase.typeKey:
|
||||
return AnimationState();
|
||||
case StateMachineEventBase.typeKey:
|
||||
return StateMachineEvent();
|
||||
case KeyedObjectBase.typeKey:
|
||||
return KeyedObject();
|
||||
case BlendAnimationDirectBase.typeKey:
|
||||
@ -154,20 +150,22 @@ class RiveCoreContext {
|
||||
return TransitionTriggerCondition();
|
||||
case KeyedPropertyBase.typeKey:
|
||||
return KeyedProperty();
|
||||
case StateMachineListenerBase.typeKey:
|
||||
return StateMachineListener();
|
||||
case KeyFrameIdBase.typeKey:
|
||||
return KeyFrameId();
|
||||
case KeyFrameBoolBase.typeKey:
|
||||
return KeyFrameBool();
|
||||
case ListenerBoolChangeBase.typeKey:
|
||||
return ListenerBoolChange();
|
||||
case TransitionNumberConditionBase.typeKey:
|
||||
return TransitionNumberCondition();
|
||||
case EventBoolChangeBase.typeKey:
|
||||
return EventBoolChange();
|
||||
case AnyStateBase.typeKey:
|
||||
return AnyState();
|
||||
case EventTriggerChangeBase.typeKey:
|
||||
return EventTriggerChange();
|
||||
case StateMachineLayerBase.typeKey:
|
||||
return StateMachineLayer();
|
||||
case ListenerNumberChangeBase.typeKey:
|
||||
return ListenerNumberChange();
|
||||
case CubicInterpolatorBase.typeKey:
|
||||
return CubicInterpolator();
|
||||
case StateTransitionBase.typeKey:
|
||||
@ -182,6 +180,8 @@ class RiveCoreContext {
|
||||
return EntryState();
|
||||
case StateMachineTriggerBase.typeKey:
|
||||
return StateMachineTrigger();
|
||||
case ListenerTriggerChangeBase.typeKey:
|
||||
return ListenerTriggerChange();
|
||||
case BlendStateDirectBase.typeKey:
|
||||
return BlendStateDirect();
|
||||
case NestedStateMachineBase.typeKey:
|
||||
@ -457,16 +457,6 @@ class RiveCoreContext {
|
||||
object.animationId = value;
|
||||
}
|
||||
break;
|
||||
case EventInputChangeBase.inputIdPropertyKey:
|
||||
if (object is EventInputChangeBase && value is int) {
|
||||
object.inputId = value;
|
||||
}
|
||||
break;
|
||||
case EventNumberChangeBase.valuePropertyKey:
|
||||
if (object is EventNumberChangeBase && value is double) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case AnimationBase.namePropertyKey:
|
||||
if (object is AnimationBase && value is String) {
|
||||
object.name = value;
|
||||
@ -522,26 +512,16 @@ class RiveCoreContext {
|
||||
object.isPlaying = value;
|
||||
}
|
||||
break;
|
||||
case ListenerInputChangeBase.inputIdPropertyKey:
|
||||
if (object is ListenerInputChangeBase && value is int) {
|
||||
object.inputId = value;
|
||||
}
|
||||
break;
|
||||
case AnimationStateBase.animationIdPropertyKey:
|
||||
if (object is AnimationStateBase && value is int) {
|
||||
object.animationId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineComponentBase.namePropertyKey:
|
||||
if (object is StateMachineComponentBase && value is String) {
|
||||
object.name = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineEventBase.targetIdPropertyKey:
|
||||
if (object is StateMachineEventBase && value is int) {
|
||||
object.targetId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineEventBase.eventTypeValuePropertyKey:
|
||||
if (object is StateMachineEventBase && value is int) {
|
||||
object.eventTypeValue = value;
|
||||
}
|
||||
break;
|
||||
case KeyedObjectBase.objectIdPropertyKey:
|
||||
if (object is KeyedObjectBase && value is int) {
|
||||
object.objectId = value;
|
||||
@ -557,6 +537,11 @@ class RiveCoreContext {
|
||||
object.inputId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineComponentBase.namePropertyKey:
|
||||
if (object is StateMachineComponentBase && value is String) {
|
||||
object.name = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineNumberBase.valuePropertyKey:
|
||||
if (object is StateMachineNumberBase && value is double) {
|
||||
object.value = value;
|
||||
@ -572,6 +557,16 @@ class RiveCoreContext {
|
||||
object.propertyKey = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineListenerBase.targetIdPropertyKey:
|
||||
if (object is StateMachineListenerBase && value is int) {
|
||||
object.targetId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineListenerBase.listenerTypeValuePropertyKey:
|
||||
if (object is StateMachineListenerBase && value is int) {
|
||||
object.listenerTypeValue = value;
|
||||
}
|
||||
break;
|
||||
case KeyFrameBase.framePropertyKey:
|
||||
if (object is KeyFrameBase && value is int) {
|
||||
object.frame = value;
|
||||
@ -597,6 +592,11 @@ class RiveCoreContext {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case ListenerBoolChangeBase.valuePropertyKey:
|
||||
if (object is ListenerBoolChangeBase && value is int) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case TransitionValueConditionBase.opValuePropertyKey:
|
||||
if (object is TransitionValueConditionBase && value is int) {
|
||||
object.opValue = value;
|
||||
@ -607,8 +607,8 @@ class RiveCoreContext {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case EventBoolChangeBase.valuePropertyKey:
|
||||
if (object is EventBoolChangeBase && value is int) {
|
||||
case ListenerNumberChangeBase.valuePropertyKey:
|
||||
if (object is ListenerNumberChangeBase && value is double) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
@ -1151,26 +1151,26 @@ class RiveCoreContext {
|
||||
case DrawableBase.drawableFlagsPropertyKey:
|
||||
case NestedArtboardBase.artboardIdPropertyKey:
|
||||
case NestedAnimationBase.animationIdPropertyKey:
|
||||
case EventInputChangeBase.inputIdPropertyKey:
|
||||
case LinearAnimationBase.fpsPropertyKey:
|
||||
case LinearAnimationBase.durationPropertyKey:
|
||||
case LinearAnimationBase.loopValuePropertyKey:
|
||||
case LinearAnimationBase.workStartPropertyKey:
|
||||
case LinearAnimationBase.workEndPropertyKey:
|
||||
case ListenerInputChangeBase.inputIdPropertyKey:
|
||||
case AnimationStateBase.animationIdPropertyKey:
|
||||
case StateMachineEventBase.targetIdPropertyKey:
|
||||
case StateMachineEventBase.eventTypeValuePropertyKey:
|
||||
case KeyedObjectBase.objectIdPropertyKey:
|
||||
case BlendAnimationBase.animationIdPropertyKey:
|
||||
case BlendAnimationDirectBase.inputIdPropertyKey:
|
||||
case TransitionConditionBase.inputIdPropertyKey:
|
||||
case KeyedPropertyBase.propertyKeyPropertyKey:
|
||||
case StateMachineListenerBase.targetIdPropertyKey:
|
||||
case StateMachineListenerBase.listenerTypeValuePropertyKey:
|
||||
case KeyFrameBase.framePropertyKey:
|
||||
case KeyFrameBase.interpolationTypePropertyKey:
|
||||
case KeyFrameBase.interpolatorIdPropertyKey:
|
||||
case KeyFrameIdBase.valuePropertyKey:
|
||||
case ListenerBoolChangeBase.valuePropertyKey:
|
||||
case TransitionValueConditionBase.opValuePropertyKey:
|
||||
case EventBoolChangeBase.valuePropertyKey:
|
||||
case StateTransitionBase.stateToIdPropertyKey:
|
||||
case StateTransitionBase.flagsPropertyKey:
|
||||
case StateTransitionBase.durationPropertyKey:
|
||||
@ -1211,12 +1211,12 @@ class RiveCoreContext {
|
||||
case TransformComponentBase.scaleYPropertyKey:
|
||||
case NodeBase.xPropertyKey:
|
||||
case NodeBase.yPropertyKey:
|
||||
case EventNumberChangeBase.valuePropertyKey:
|
||||
case LinearAnimationBase.speedPropertyKey:
|
||||
case NestedLinearAnimationBase.mixPropertyKey:
|
||||
case NestedSimpleAnimationBase.speedPropertyKey:
|
||||
case StateMachineNumberBase.valuePropertyKey:
|
||||
case TransitionNumberConditionBase.valuePropertyKey:
|
||||
case ListenerNumberChangeBase.valuePropertyKey:
|
||||
case CubicInterpolatorBase.x1PropertyKey:
|
||||
case CubicInterpolatorBase.y1PropertyKey:
|
||||
case CubicInterpolatorBase.x2PropertyKey:
|
||||
@ -1355,8 +1355,6 @@ class RiveCoreContext {
|
||||
return (object as NestedArtboardBase).artboardId;
|
||||
case NestedAnimationBase.animationIdPropertyKey:
|
||||
return (object as NestedAnimationBase).animationId;
|
||||
case EventInputChangeBase.inputIdPropertyKey:
|
||||
return (object as EventInputChangeBase).inputId;
|
||||
case LinearAnimationBase.fpsPropertyKey:
|
||||
return (object as LinearAnimationBase).fps;
|
||||
case LinearAnimationBase.durationPropertyKey:
|
||||
@ -1367,12 +1365,10 @@ class RiveCoreContext {
|
||||
return (object as LinearAnimationBase).workStart;
|
||||
case LinearAnimationBase.workEndPropertyKey:
|
||||
return (object as LinearAnimationBase).workEnd;
|
||||
case ListenerInputChangeBase.inputIdPropertyKey:
|
||||
return (object as ListenerInputChangeBase).inputId;
|
||||
case AnimationStateBase.animationIdPropertyKey:
|
||||
return (object as AnimationStateBase).animationId;
|
||||
case StateMachineEventBase.targetIdPropertyKey:
|
||||
return (object as StateMachineEventBase).targetId;
|
||||
case StateMachineEventBase.eventTypeValuePropertyKey:
|
||||
return (object as StateMachineEventBase).eventTypeValue;
|
||||
case KeyedObjectBase.objectIdPropertyKey:
|
||||
return (object as KeyedObjectBase).objectId;
|
||||
case BlendAnimationBase.animationIdPropertyKey:
|
||||
@ -1383,6 +1379,10 @@ class RiveCoreContext {
|
||||
return (object as TransitionConditionBase).inputId;
|
||||
case KeyedPropertyBase.propertyKeyPropertyKey:
|
||||
return (object as KeyedPropertyBase).propertyKey;
|
||||
case StateMachineListenerBase.targetIdPropertyKey:
|
||||
return (object as StateMachineListenerBase).targetId;
|
||||
case StateMachineListenerBase.listenerTypeValuePropertyKey:
|
||||
return (object as StateMachineListenerBase).listenerTypeValue;
|
||||
case KeyFrameBase.framePropertyKey:
|
||||
return (object as KeyFrameBase).frame;
|
||||
case KeyFrameBase.interpolationTypePropertyKey:
|
||||
@ -1391,10 +1391,10 @@ class RiveCoreContext {
|
||||
return (object as KeyFrameBase).interpolatorId;
|
||||
case KeyFrameIdBase.valuePropertyKey:
|
||||
return (object as KeyFrameIdBase).value;
|
||||
case ListenerBoolChangeBase.valuePropertyKey:
|
||||
return (object as ListenerBoolChangeBase).value;
|
||||
case TransitionValueConditionBase.opValuePropertyKey:
|
||||
return (object as TransitionValueConditionBase).opValue;
|
||||
case EventBoolChangeBase.valuePropertyKey:
|
||||
return (object as EventBoolChangeBase).value;
|
||||
case StateTransitionBase.stateToIdPropertyKey:
|
||||
return (object as StateTransitionBase).stateToId;
|
||||
case StateTransitionBase.flagsPropertyKey:
|
||||
@ -1479,8 +1479,6 @@ class RiveCoreContext {
|
||||
return (object as NodeBase).x;
|
||||
case NodeBase.yPropertyKey:
|
||||
return (object as NodeBase).y;
|
||||
case EventNumberChangeBase.valuePropertyKey:
|
||||
return (object as EventNumberChangeBase).value;
|
||||
case LinearAnimationBase.speedPropertyKey:
|
||||
return (object as LinearAnimationBase).speed;
|
||||
case NestedLinearAnimationBase.mixPropertyKey:
|
||||
@ -1491,6 +1489,8 @@ class RiveCoreContext {
|
||||
return (object as StateMachineNumberBase).value;
|
||||
case TransitionNumberConditionBase.valuePropertyKey:
|
||||
return (object as TransitionNumberConditionBase).value;
|
||||
case ListenerNumberChangeBase.valuePropertyKey:
|
||||
return (object as ListenerNumberChangeBase).value;
|
||||
case CubicInterpolatorBase.x1PropertyKey:
|
||||
return (object as CubicInterpolatorBase).x1;
|
||||
case CubicInterpolatorBase.y1PropertyKey:
|
||||
@ -1779,11 +1779,6 @@ class RiveCoreContext {
|
||||
object.animationId = value;
|
||||
}
|
||||
break;
|
||||
case EventInputChangeBase.inputIdPropertyKey:
|
||||
if (object is EventInputChangeBase) {
|
||||
object.inputId = value;
|
||||
}
|
||||
break;
|
||||
case LinearAnimationBase.fpsPropertyKey:
|
||||
if (object is LinearAnimationBase) {
|
||||
object.fps = value;
|
||||
@ -1809,21 +1804,16 @@ class RiveCoreContext {
|
||||
object.workEnd = value;
|
||||
}
|
||||
break;
|
||||
case ListenerInputChangeBase.inputIdPropertyKey:
|
||||
if (object is ListenerInputChangeBase) {
|
||||
object.inputId = value;
|
||||
}
|
||||
break;
|
||||
case AnimationStateBase.animationIdPropertyKey:
|
||||
if (object is AnimationStateBase) {
|
||||
object.animationId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineEventBase.targetIdPropertyKey:
|
||||
if (object is StateMachineEventBase) {
|
||||
object.targetId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineEventBase.eventTypeValuePropertyKey:
|
||||
if (object is StateMachineEventBase) {
|
||||
object.eventTypeValue = value;
|
||||
}
|
||||
break;
|
||||
case KeyedObjectBase.objectIdPropertyKey:
|
||||
if (object is KeyedObjectBase) {
|
||||
object.objectId = value;
|
||||
@ -1849,6 +1839,16 @@ class RiveCoreContext {
|
||||
object.propertyKey = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineListenerBase.targetIdPropertyKey:
|
||||
if (object is StateMachineListenerBase) {
|
||||
object.targetId = value;
|
||||
}
|
||||
break;
|
||||
case StateMachineListenerBase.listenerTypeValuePropertyKey:
|
||||
if (object is StateMachineListenerBase) {
|
||||
object.listenerTypeValue = value;
|
||||
}
|
||||
break;
|
||||
case KeyFrameBase.framePropertyKey:
|
||||
if (object is KeyFrameBase) {
|
||||
object.frame = value;
|
||||
@ -1869,16 +1869,16 @@ class RiveCoreContext {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case ListenerBoolChangeBase.valuePropertyKey:
|
||||
if (object is ListenerBoolChangeBase) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case TransitionValueConditionBase.opValuePropertyKey:
|
||||
if (object is TransitionValueConditionBase) {
|
||||
object.opValue = value;
|
||||
}
|
||||
break;
|
||||
case EventBoolChangeBase.valuePropertyKey:
|
||||
if (object is EventBoolChangeBase) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case StateTransitionBase.stateToIdPropertyKey:
|
||||
if (object is StateTransitionBase) {
|
||||
object.stateToId = value;
|
||||
@ -2079,11 +2079,6 @@ class RiveCoreContext {
|
||||
object.y = value;
|
||||
}
|
||||
break;
|
||||
case EventNumberChangeBase.valuePropertyKey:
|
||||
if (object is EventNumberChangeBase) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case LinearAnimationBase.speedPropertyKey:
|
||||
if (object is LinearAnimationBase) {
|
||||
object.speed = value;
|
||||
@ -2109,6 +2104,11 @@ class RiveCoreContext {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case ListenerNumberChangeBase.valuePropertyKey:
|
||||
if (object is ListenerNumberChangeBase) {
|
||||
object.value = value;
|
||||
}
|
||||
break;
|
||||
case CubicInterpolatorBase.x1PropertyKey:
|
||||
if (object is CubicInterpolatorBase) {
|
||||
object.x1 = value;
|
||||
|
@ -1,9 +1,10 @@
|
||||
import 'dart:collection';
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
|
||||
class InputChanges extends ListBase<EventInputChange> {
|
||||
final List<EventInputChange?> _values = [];
|
||||
List<EventInputChange> get values => _values.cast<EventInputChange>();
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
|
||||
class InputChanges extends ListBase<ListenerInputChange> {
|
||||
final List<ListenerInputChange?> _values = [];
|
||||
List<ListenerInputChange> get values => _values.cast<ListenerInputChange>();
|
||||
|
||||
@override
|
||||
int get length => _values.length;
|
||||
@ -12,9 +13,9 @@ class InputChanges extends ListBase<EventInputChange> {
|
||||
set length(int value) => _values.length = value;
|
||||
|
||||
@override
|
||||
EventInputChange operator [](int index) => _values[index]!;
|
||||
ListenerInputChange operator [](int index) => _values[index]!;
|
||||
|
||||
@override
|
||||
void operator []=(int index, EventInputChange value) =>
|
||||
void operator []=(int index, ListenerInputChange value) =>
|
||||
_values[index] = value;
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
import 'package:rive/src/generated/animation/event_trigger_change_base.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/event_trigger_change_base.dart';
|
||||
|
||||
class EventTriggerChange extends EventTriggerChangeBase {
|
||||
@override
|
||||
void perform(StateMachineController controller) =>
|
||||
controller.setInputValue(inputId, true);
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
import 'package:rive/src/generated/animation/event_bool_change_base.dart';
|
||||
import 'package:rive/src/generated/animation/listener_bool_change_base.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/event_bool_change_base.dart';
|
||||
export 'package:rive/src/generated/animation/listener_bool_change_base.dart';
|
||||
|
||||
class EventBoolChange extends EventBoolChangeBase {
|
||||
class ListenerBoolChange extends ListenerBoolChangeBase {
|
||||
@override
|
||||
void valueChanged(int from, int to) {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
import 'package:rive/src/core/core.dart';
|
||||
import 'package:rive/src/generated/animation/event_input_change_base.dart';
|
||||
import 'package:rive/src/generated/animation/listener_input_change_base.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_input.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/event_input_change_base.dart';
|
||||
export 'package:rive/src/generated/animation/listener_input_change_base.dart';
|
||||
|
||||
abstract class EventInputChange extends EventInputChangeBase {
|
||||
abstract class ListenerInputChange extends ListenerInputChangeBase {
|
||||
StateMachineInput _input = StateMachineInput.unknown;
|
||||
StateMachineInput get input => _input;
|
||||
set input(StateMachineInput value) {
|
||||
@ -39,7 +39,7 @@ abstract class EventInputChange extends EventInputChangeBase {
|
||||
@override
|
||||
bool import(ImportStack importStack) {
|
||||
var importer = importStack
|
||||
.latest<StateMachineEventImporter>(StateMachineEventBase.typeKey);
|
||||
.latest<StateMachineListenerImporter>(StateMachineListenerBase.typeKey);
|
||||
if (importer == null) {
|
||||
return false;
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
import 'package:rive/src/generated/animation/event_number_change_base.dart';
|
||||
import 'package:rive/src/generated/animation/listener_number_change_base.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/event_number_change_base.dart';
|
||||
export 'package:rive/src/generated/animation/listener_number_change_base.dart';
|
||||
|
||||
class EventNumberChange extends EventNumberChangeBase {
|
||||
class ListenerNumberChange extends ListenerNumberChangeBase {
|
||||
@override
|
||||
void valueChanged(double from, double to) {}
|
||||
|
10
lib/src/rive_core/animation/listener_trigger_change.dart
Normal file
10
lib/src/rive_core/animation/listener_trigger_change.dart
Normal file
@ -0,0 +1,10 @@
|
||||
import 'package:rive/src/generated/animation/listener_trigger_change_base.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/listener_trigger_change_base.dart';
|
||||
|
||||
class ListenerTriggerChange extends ListenerTriggerChangeBase {
|
||||
@override
|
||||
void perform(StateMachineController controller) =>
|
||||
controller.setInputValue(inputId, true);
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
import 'package:rive/src/core/core.dart';
|
||||
import 'package:rive/src/generated/animation/state_machine_base.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_input.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_layer.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
import 'package:rive/src/rive_core/artboard.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/state_machine_base.dart';
|
||||
@ -12,8 +12,8 @@ class StateMachine extends StateMachineBase {
|
||||
StateMachineComponents<StateMachineInput>();
|
||||
final StateMachineComponents<StateMachineLayer> layers =
|
||||
StateMachineComponents<StateMachineLayer>();
|
||||
final StateMachineComponents<StateMachineEvent> events =
|
||||
StateMachineComponents<StateMachineEvent>();
|
||||
final StateMachineComponents<StateMachineListener> listeners =
|
||||
StateMachineComponents<StateMachineListener>();
|
||||
|
||||
@override
|
||||
bool import(ImportStack stack) {
|
||||
|
@ -1,18 +1,18 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:rive/src/core/core.dart';
|
||||
import 'package:rive/src/generated/animation/state_machine_event_base.dart';
|
||||
import 'package:rive/src/rive_core/animation/event_input_change.dart';
|
||||
import 'package:rive/src/generated/animation/state_machine_listener_base.dart';
|
||||
import 'package:rive/src/rive_core/animation/listener_input_change.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_component.dart';
|
||||
import 'package:rive/src/rive_core/node.dart';
|
||||
import 'package:rive/src/rive_core/state_machine_controller.dart';
|
||||
|
||||
export 'package:rive/src/generated/animation/state_machine_event_base.dart';
|
||||
export 'package:rive/src/generated/animation/state_machine_listener_base.dart';
|
||||
|
||||
enum EventType { enter, exit, down, up }
|
||||
enum ListenerType { enter, exit, down, up }
|
||||
|
||||
class StateMachineEvent extends StateMachineEventBase {
|
||||
class StateMachineListener extends StateMachineListenerBase {
|
||||
final InputChanges inputChanges = InputChanges();
|
||||
|
||||
Node? _target;
|
||||
@ -29,23 +29,23 @@ class StateMachineEvent extends StateMachineEventBase {
|
||||
|
||||
@override
|
||||
String get name =>
|
||||
super.name.isEmpty ? (_target?.name ?? 'Event') : super.name;
|
||||
super.name.isEmpty ? (_target?.name ?? 'Listener') : super.name;
|
||||
@override
|
||||
void eventTypeValueChanged(int from, int to) {}
|
||||
void listenerTypeValueChanged(int from, int to) {}
|
||||
|
||||
EventType get eventType => EventType.values[eventTypeValue];
|
||||
set eventType(EventType value) => eventTypeValue = value.index;
|
||||
ListenerType get listenerType => ListenerType.values[listenerTypeValue];
|
||||
set listenerType(ListenerType value) => listenerTypeValue = value.index;
|
||||
|
||||
@override
|
||||
ListBase<StateMachineComponent> machineComponentList(StateMachine machine) =>
|
||||
machine.events;
|
||||
machine.listeners;
|
||||
|
||||
@override
|
||||
void targetIdChanged(int from, int to) => target = context.resolve(to);
|
||||
|
||||
/// Called by rive_core to add an [EventInputChange] to this
|
||||
/// [StateMachineEvent]. This should be @internal when it's supported.
|
||||
bool internalAddInputChange(EventInputChange change) {
|
||||
/// Called by rive_core to add an [ListenerInputChange] to this
|
||||
/// [StateMachineListener]. This should be @internal when it's supported.
|
||||
bool internalAddInputChange(ListenerInputChange change) {
|
||||
if (inputChanges.contains(change)) {
|
||||
return false;
|
||||
}
|
||||
@ -54,9 +54,9 @@ class StateMachineEvent extends StateMachineEventBase {
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Called by rive_core to remove an [EventInputChange] from this
|
||||
/// [StateMachineEvent]. This should be @internal when it's supported.
|
||||
bool internalRemoveInputChange(EventInputChange change) {
|
||||
/// Called by rive_core to remove an [ListenerInputChange] from this
|
||||
/// [StateMachineListener]. This should be @internal when it's supported.
|
||||
bool internalRemoveInputChange(ListenerInputChange change) {
|
||||
var removed = inputChanges.remove(change);
|
||||
|
||||
return removed;
|
@ -12,36 +12,24 @@ class ImageAsset extends ImageAssetBase {
|
||||
ui.Image? _image;
|
||||
ui.Image? get image => _image;
|
||||
|
||||
/// A list of Images that need to know when the underlying bytes have been
|
||||
/// successfully decoded.
|
||||
List<Image>? _decodeListeners;
|
||||
|
||||
ImageAsset();
|
||||
|
||||
@visibleForTesting
|
||||
ImageAsset.fromTestImage(this._image);
|
||||
|
||||
@visibleForTesting
|
||||
set image(ui.Image? image) {
|
||||
if (_image == image) {
|
||||
return;
|
||||
}
|
||||
_image = image;
|
||||
}
|
||||
|
||||
/// Registers [asset] to know when these image bytes have been decoded.
|
||||
void addDecodeListener(Image asset) {
|
||||
(_decodeListeners ??= []).add(asset);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> decode(Uint8List bytes) {
|
||||
final completer = Completer<void>();
|
||||
ui.decodeImageFromList(bytes, (value) {
|
||||
_image = value;
|
||||
completer.complete();
|
||||
|
||||
// Tell listeners that the image is ready to be drawn: mark them dirty.
|
||||
_decodeListeners
|
||||
?..forEach((e) => e.context.markNeedsAdvance())
|
||||
..clear();
|
||||
});
|
||||
return completer.future;
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Image extends ImageBase
|
||||
|
||||
@override
|
||||
void draw(ui.Canvas canvas) {
|
||||
final uiImage = asset?.image;
|
||||
var uiImage = asset?.image;
|
||||
if (uiImage == null) {
|
||||
return;
|
||||
}
|
||||
@ -84,6 +84,7 @@ class Image extends ImageBase
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
int get assetIdPropertyKey => ImageBase.assetIdPropertyKey;
|
||||
|
||||
@ -99,9 +100,6 @@ class Image extends ImageBase
|
||||
void copy(covariant Image source) {
|
||||
super.copy(source);
|
||||
asset = source.asset;
|
||||
if (asset?.image == null) {
|
||||
asset?.addDecodeListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -12,8 +12,8 @@ import 'package:rive/src/rive_core/animation/linear_animation.dart';
|
||||
import 'package:rive/src/rive_core/animation/nested_state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_instance.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_layer.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_trigger.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_transition.dart';
|
||||
import 'package:rive/src/rive_core/artboard.dart';
|
||||
@ -25,7 +25,7 @@ import 'package:rive/src/rive_core/node.dart';
|
||||
import 'package:rive/src/rive_core/rive_animation_controller.dart';
|
||||
import 'package:rive/src/rive_core/shapes/shape.dart';
|
||||
|
||||
/// Callback signature for state machine state changes
|
||||
/// Callback signature for satate machine state changes
|
||||
typedef OnStateChange = void Function(String, String);
|
||||
|
||||
/// Callback signature for layer state changes
|
||||
@ -209,14 +209,6 @@ class LayerController {
|
||||
}
|
||||
}
|
||||
|
||||
/// This allows a value of type T or T?
|
||||
/// to be treated as a value of type T?.
|
||||
///
|
||||
/// We use this so that APIs that have become
|
||||
/// non-nullable can still be used with `!` and `?`
|
||||
/// to support older versions of the API as well.
|
||||
T? _ambiguate<T>(T? value) => value;
|
||||
|
||||
class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
final StateMachine stateMachine;
|
||||
final _inputValues = HashMap<int, dynamic>();
|
||||
@ -237,6 +229,8 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
|
||||
/// Handles state change callbacks
|
||||
void _onStateChange(LayerState layerState) =>
|
||||
|
||||
/// See https://github.com/flutter/flutter/issues/103561#issuecomment-1129356149
|
||||
_ambiguate(SchedulerBinding.instance)?.addPostFrameCallback((_) {
|
||||
String stateName = 'unknown';
|
||||
if (layerState is AnimationState && layerState.animation != null) {
|
||||
@ -278,7 +272,7 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
|
||||
// Initialize all events.
|
||||
HashMap<Shape, _HitShape> hitShapeLookup = HashMap<Shape, _HitShape>();
|
||||
for (final event in stateMachine.events) {
|
||||
for (final event in stateMachine.listeners) {
|
||||
// Resolve target on this artboard instance.
|
||||
var node = core.resolve<Node>(event.targetId);
|
||||
if (node == null) {
|
||||
@ -346,7 +340,7 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
isActive = keepGoing;
|
||||
}
|
||||
|
||||
void _processEvent(Vec2D position, {EventType? hitEvent}) {
|
||||
void _processEvent(Vec2D position, {ListenerType? hitEvent}) {
|
||||
var artboard = this.artboard;
|
||||
if (artboard == null) {
|
||||
return;
|
||||
@ -396,15 +390,15 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
// Always update hover states regardless of which specific event type
|
||||
// we're trying to trigger.
|
||||
if (hoverChange) {
|
||||
if (isOver && event.eventType == EventType.enter) {
|
||||
if (isOver && event.listenerType == ListenerType.enter) {
|
||||
event.performChanges(this);
|
||||
isActive = true;
|
||||
} else if (!isOver && event.eventType == EventType.exit) {
|
||||
} else if (!isOver && event.listenerType == ListenerType.exit) {
|
||||
event.performChanges(this);
|
||||
isActive = true;
|
||||
}
|
||||
}
|
||||
if (isOver && hitEvent == event.eventType) {
|
||||
if (isOver && hitEvent == event.listenerType) {
|
||||
event.performChanges(this);
|
||||
isActive = true;
|
||||
}
|
||||
@ -419,10 +413,10 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
for (final nestedStateMachine
|
||||
in nestedArtboard.animations.whereType<NestedStateMachine>()) {
|
||||
switch (hitEvent) {
|
||||
case EventType.down:
|
||||
case ListenerType.down:
|
||||
nestedStateMachine.pointerDown(nestedPosition);
|
||||
break;
|
||||
case EventType.up:
|
||||
case ListenerType.up:
|
||||
nestedStateMachine.pointerUp(nestedPosition);
|
||||
break;
|
||||
default:
|
||||
@ -437,12 +431,12 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
|
||||
void pointerDown(Vec2D position) => _processEvent(
|
||||
position,
|
||||
hitEvent: EventType.down,
|
||||
hitEvent: ListenerType.down,
|
||||
);
|
||||
|
||||
void pointerUp(Vec2D position) => _processEvent(
|
||||
position,
|
||||
hitEvent: EventType.up,
|
||||
hitEvent: ListenerType.up,
|
||||
);
|
||||
}
|
||||
|
||||
@ -452,6 +446,14 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
||||
class _HitShape {
|
||||
Shape shape;
|
||||
bool isHovered = false;
|
||||
List<StateMachineEvent> events = [];
|
||||
List<StateMachineListener> events = [];
|
||||
_HitShape(this.shape);
|
||||
}
|
||||
|
||||
/// This allows a value of type T or T?
|
||||
/// to be treated as a value of type T?.
|
||||
///
|
||||
/// We use this so that APIs that have become
|
||||
/// non-nullable can still be used with `!` and `?`
|
||||
/// to support older versions of the API as well.
|
||||
T? _ambiguate<T>(T? value) => value;
|
||||
|
@ -20,8 +20,8 @@ import 'package:rive/src/rive_core/animation/keyed_property.dart';
|
||||
import 'package:rive/src/rive_core/animation/layer_state.dart';
|
||||
import 'package:rive/src/rive_core/animation/linear_animation.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_event.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_layer.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_machine_listener.dart';
|
||||
import 'package:rive/src/rive_core/animation/state_transition.dart';
|
||||
import 'package:rive/src/rive_core/artboard.dart';
|
||||
import 'package:rive/src/rive_core/assets/file_asset.dart';
|
||||
@ -159,8 +159,9 @@ class RiveFile {
|
||||
case StateMachineLayerBase.typeKey:
|
||||
stackObject = StateMachineLayerImporter(object as StateMachineLayer);
|
||||
break;
|
||||
case StateMachineEventBase.typeKey:
|
||||
stackObject = StateMachineEventImporter(object as StateMachineEvent);
|
||||
case StateMachineListenerBase.typeKey:
|
||||
stackObject =
|
||||
StateMachineListenerImporter(object as StateMachineListener);
|
||||
break;
|
||||
case EntryStateBase.typeKey:
|
||||
case AnyStateBase.typeKey:
|
||||
|
Reference in New Issue
Block a user