Иметь несколько интервалов в шахматной анимации - PullRequest
0 голосов
/ 29 мая 2020

Привет, мне было интересно, можно ли иметь анимацию, которая может иметь несколько интервалов в сервале, например,

непрозрачность изменяется от 1,0 до 0,0 (% времени: от 0,45 до 0,5)

затем

непрозрачность изменяется от 0,0 до 1,0 (время в%: от 0,5 до 0,55)

с использованием аналогичной анимации движения

opacity1 = Tween<double>(
      begin: 1.0,
      end: 0.0,
    ).animate(
      CurvedAnimation(
        parent: controller,
        curve: Interval(
          0.45, 0.5,
          curve: Curves.ease,
        ),
      ),
    ).NextTween<double>( ///Pseudo code
      begin: 0.0,
      end: 1.0,
    ).animate(
      CurvedAnimation(
        parent: controller,
        curve: Interval(
          0.5, 0.55,
          curve: Curves.ease,
        ),
      ),
    )

1 Ответ

0 голосов
/ 29 мая 2020

Хорошо, в конце я использую TweenSquence, в документации по флаттеру используется приведенный ниже пример, очень полезная ссылка на документы: Документы по флаттеру .

В этом примере определяется анимация который использует кривую плавности для интерполяции между 5,0 и 10,0 в течение первых 40% анимации, остается на уровне 10,0 в течение следующих 20%, а затем возвращается в значение 5,0 для последних 40%.

final Animation<double> animation = TweenSequence(


 <TweenSequenceItem<double>>[
    TweenSequenceItem<double>(
      tween: Tween<double>(begin: 5.0, end: 10.0)
        .chain(CurveTween(curve: Curves.ease)),
      weight: 40.0,
    ),
    TweenSequenceItem<double>(
      tween: ConstantTween<double>(10.0),
      weight: 20.0,
    ),
    TweenSequenceItem<double>(
      tween: Tween<double>(begin: 10.0, end: 5.0)
        .chain(CurveTween(curve: Curves.ease)),
      weight: 40.0,
    ),
  ],
).animate(myAnimationController);
...