UNPKG

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