Dart DocumentationstagexlDelayedCall

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;
 }

}

Implements

Animatable

Constructors

new DelayedCall(Function action, num delay) #

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

docs inherited from Object
DelayedCall(Function action, num delay) :
 _action = action {
 _totalTime = max(delay, 0.0001);
}

Properties

final num currentTime #

num get currentTime => _currentTime;

int repeatCount #

int get repeatCount => _repeatCount;
set repeatCount(int value) {
 _repeatCount = value;
}

final num totalTime #

num get totalTime => _totalTime;

Methods

bool advanceTime(num time) #

bool advanceTime(num time) {

 num newTime = _currentTime + time;

 while (newTime >= _totalTime && _repeatCount > 0) {

   _currentTime = _totalTime;
   _repeatCount--;
   _action();

   newTime -= _totalTime;
 }

 _currentTime = newTime;

 return (_repeatCount > 0);
}