UNPKG

toosoon-events

Version:

Project providing services implemented as singleton class instances

31 lines (30 loc) 759 B
import { EventManager } from './index'; /** * Utility class for creating `requestAnimationFrame` listeners * * @class RafManager * @extends EventManager<RafListener> */ class RafManager extends EventManager { time = 0; _rafId; bind() { this.time = Date.now(); this._rafId = requestAnimationFrame(this._onUpdate); } unbind() { cancelAnimationFrame(this._rafId); this._rafId = 0; } update = () => { const time = Date.now(); const delta = (time - this.time) / 1000; this.time = time; this.emit(time, delta); }; _onUpdate = () => { this.update(); this._rafId = requestAnimationFrame(this._onUpdate); }; } export default new RafManager();