mirror of
https://github.com/rive-app/rive-flutter.git
synced 2025-05-19 22:36:51 +08:00
event inputs importing
This commit is contained in:
@ -17,6 +17,7 @@ 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_transition_importer.dart';
|
||||
|
13
lib/src/core/importers/state_machine_event_importer.dart
Normal file
13
lib/src/core/importers/state_machine_event_importer.dart
Normal file
@ -0,0 +1,13 @@
|
||||
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 object) {
|
||||
event.context.addObject(object);
|
||||
event.internalAddInputChange(object);
|
||||
}
|
||||
}
|
@ -1,4 +1,7 @@
|
||||
import 'package:rive/src/core/core.dart';
|
||||
import 'package:rive/src/generated/animation/event_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/state_machine_controller.dart';
|
||||
|
||||
@ -32,4 +35,27 @@ abstract class EventInputChange extends EventInputChangeBase {
|
||||
|
||||
/// Make the change to the input values.
|
||||
void perform(StateMachineController controller);
|
||||
|
||||
@override
|
||||
bool import(ImportStack importStack) {
|
||||
var importer = importStack
|
||||
.latest<StateMachineEventImporter>(StateMachineEventBase.typeKey);
|
||||
if (importer == null) {
|
||||
return false;
|
||||
}
|
||||
importer.addInputChange(this);
|
||||
|
||||
var stateMachineImporter =
|
||||
importStack.latest<StateMachineImporter>(StateMachineBase.typeKey);
|
||||
if (stateMachineImporter == null) {
|
||||
return false;
|
||||
}
|
||||
if (inputId >= 0 && inputId < stateMachineImporter.machine.inputs.length) {
|
||||
var found = stateMachineImporter.machine.inputs[inputId];
|
||||
_input = found;
|
||||
inputId = found.id;
|
||||
}
|
||||
|
||||
return super.import(importStack);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user