eventemitter3-timer
Version:
`EventEmitter3-Timer` is a plugin extend [EventEmitter3](https://github.com/primus/eventemitter3) to create time events easily.
192 lines (185 loc) • 5.71 kB
TypeScript
// Generated by dts-bundle v0.7.3
// Dependencies for this module:
// ../eventemitter3
import { EventEmitter } from "eventemitter3";
/**
* A Simple Timer class extending [EventEmitter3](https://github.com/primus/eventemitter3)
*
* Auther: Shen Yiming(soimy@163.com)
*
* Repo: https://github.com/soimy/pixi-timer
*
* @export
* @class Timer
* @extends {EventEmitter}
*/
export class Timer extends EventEmitter {
/**
* The global TimerManager which is default to all newly created timers.
*
* @static
* @type {TimerManager}
* @memberof Timer
*/
static readonly timerManager: TimerManager;
/**
* The time until timer triggered.
*
* @type {number}
* @memberof Timer
*/
time: number;
/**
* The activation status of timer.
*
* @type {boolean}
* @memberof Timer
*/
active: boolean;
/**
* Status indicator: whether this timer is ended.
*
* @type {boolean}
* @memberof Timer
*/
isEnded: boolean;
/**
* Status indicator: whether this timer is started.
*
* @type {boolean}
* @memberof Timer
*/
isStarted: boolean;
/**
* Delay in ms before timer starts
*
* @type {number}
* @memberof Timer
*/
delay: number;
/**
* The repeat count before timer stop
*
* @type {number}
* @memberof Timer
*/
repeat: number;
/**
* Whether this timer loops forever
*
* @type {boolean}
* @memberof Timer
*/
loop: boolean;
/**
* Whether this timer is expired and should be removed from timerManager.
*
* @type {boolean}
* @memberof Timer
*/
expire: boolean;
/**
* The timerManager this timer is assigned to.
*
* @type {(TimerManager | null)}
* @memberof Timer
*/
timerManager: TimerManager | null;
/**
* Creates an instance of Timer.
*
* Newly created timers will be default to be added to the global timerManager.
* Can manually create TimerManager and assign timers.
*
* @param {number} [time=1] The time is ms before timer end or repedeated.
* @memberof Timer
*/
constructor(time?: number);
/**
* Remove this timer from it's timerManager.
*
* @returns {Timer} Return self for chainable method.
* @memberof Timer
*/
remove(): Timer;
/**
* Start timer from it's current time.
*
* A `started` event will be emitted.
*
* @returns {Timer} Return self for chainable method.
* @memberof Timer
*/
start(): Timer;
/**
* Stop timer, current time stop updated.
*
* A `ended` event will be emitted.
*
* @returns {Timer} Return self for chainable method.
* @memberof Timer
*/
stop(): Timer;
/**
* Rest timer to it's initial status.
*
* @returns {Timer} Return self for chainable method.
* @memberof Timer
*/
reset(): Timer;
/**
* Increment timer's time. Should be put in main logic loop.
*
* Using `TimerManager.update()` method instead is recommended.
*
* @param {number} delta The amount of increment in ms.
* @returns {void}
* @memberof Timer
*/
update(delta: number): void;
}
/**
* Manager class for Timers
*
* @export
* @class TimerManager
*/
export class TimerManager {
timers: Timer[];
/**
* Creates an instance of TimerManager.
* @memberof TimerManager
*/
constructor();
/**
* Increment all managed timers' time.
*
* Better to use this method instead of `timers.update()` for centralized control.
*
* @param {number} [delta] The increment amount in ms. Omit to use internal deltams.
* @memberof TimerManager
*/
update(delta?: number): void;
/**
* Remove timer from this timerManager.
*
* @param {Timer} timer The timer to be removed.
* @memberof TimerManager
*/
removeTimer(timer: Timer): void;
/**
* Add timer to this timerManager, and remove timer from it's original timerManager.
*
* @param {Timer} timer The timer to be added.
* @memberof TimerManager
*/
addTimer(timer: Timer): void;
/**
* Create a new timer under this timerManager.
*
* @param {number} time time of newly created timer.
* @returns {Timer} The newly created timer.
* @memberof TimerManager
*/
createTimer(time: number): Timer;
}