advanceTime method

  1. @override
bool advanceTime (num time)
override

This method is called by the Juggler with the time past since the last call.

Returns true as long as this Animatable is not completed; false if it is completed.

Implementation

@override
bool advanceTime(num time) {
  if (_currentTime < _totalTime || _started == false) {
    _currentTime = _currentTime + time;

    if (_currentTime > _totalTime) _currentTime = _totalTime;

    if (_currentTime >= 0.0) {
      if (_started == false) {
        _started = true;
        if (_onStart != null) _onStart();
      }

      num ratio = _currentTime / _totalTime;
      num transition = _transition(ratio);

      _currentValue = _startValue + transition * (_targetValue - _startValue);

      if (_onUpdate != null) {
        _onUpdate(_roundToInt ? _currentValue.round() : _currentValue);
      }
      if (_onComplete != null && _currentTime == _totalTime) {
        _onComplete();
      }
    }
  }

  return _currentTime < _totalTime;
}