SpriteAnimation.timedOf constructor

SpriteAnimation.timedOf(
  1. SpriteRegion region,
  2. List<double> durations, {
  3. bool? loop,
})

Plays region, holding each frame for its own number of seconds.

Implementation

factory SpriteAnimation.timedOf(
  SpriteRegion region,
  List<double> durations, {
  bool? loop,
}) {
  if (durations.isEmpty) {
    throw ArgumentError.value(
      durations,
      'durations',
      'Must hold at least one frame.',
    );
  }

  for (var index = 0; index < durations.length; index += 1) {
    final duration = durations[index];

    if (duration <= 0 || !duration.isFinite) {
      throw ArgumentError.value(
        duration,
        'durations[$index]',
        'Must be positive and finite.',
      );
    }
  }

  return SpriteAnimation._(
    region,
    List.of(durations, growable: false),
    loop ?? true,
  );
}