AnimationControllerManager constructor
AnimationControllerManager({
- required List<
TriggerValWithControllerEntry> controllers, - ValueNotifier<
TriggerValWithControllerEntry?> ? notifier, - int initIndex = 0,
Implementation
AnimationControllerManager(
{required List<TriggerValWithControllerEntry> controllers,
this.notifier,
this.initIndex = 0}) {
//这里的代码可以优化成一次性完成所有的工作 但是可读性差 反正是初始化 不如分步做
for (var controller in controllers) {
super.controllers.add(controller);
}
var controllerLinkedList = super.controllers;
if (initIndex == 0) {
nextAliveControllerEntry = controllerLinkedList.first;
storePointOffset = 0.0;
return;
}
if (initIndex == controllerLinkedList.length) {
for (var c in controllers) {
c.controller.forward();
}
storePointOffset = 1.0;
return;
}
//
nextAliveControllerEntry = controllers[initIndex];
storePointOffset = controllers[initIndex - 1].triggerValue;
for (int i = 0; i < controllers.length; ++i) {
if (i == initIndex) break;
controllers[i].controller.forward();
}
}