DelayedCall class
The DelayedCall class is used to delay the invocation of a function by a given time.
See also: Juggler
Examples:
var action = () => print("Hello world!");
var delayedCall = new DelayedCall(action, 1.0);
juggler.add(delayedCall);
var action = () => print("Hello world!");
juggler.delayCall(action, 1.0);
class DelayedCall implements Animatable {
final Function _action;
num _currentTime = 0.0;
num _totalTime = 0.0;
int _repeatCount = 1;
DelayedCall(Function action, num delay) :
_action = action {
_totalTime = max(delay, 0.0001);
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
bool advanceTime(num time) {
num newTime = _currentTime + time;
while (newTime >= _totalTime && _repeatCount > 0) {
_currentTime = _totalTime;
_repeatCount--;
_action();
newTime -= _totalTime;
}
_currentTime = newTime;
return (_repeatCount > 0);
}
//-------------------------------------------------------------------------------------------------
num get totalTime => _totalTime;
num get currentTime => _currentTime;
int get repeatCount => _repeatCount;
set repeatCount(int value) {
_repeatCount = value;
}
}