UNPKG

@smoovy/tween

Version:
69 lines (68 loc) 2.52 kB
import { Ticker } from '@smoovy/ticker'; export interface TweenControllerConfig { duration?: number; delay?: number; reversed?: boolean; autoStart?: boolean; reverseDelay?: boolean; initSeek?: boolean; easing?: (x: number) => number; onSeek?: (ms: number, progress: number) => void; onDelay?: (ms: number, progress: number) => void; onPause?: () => void; onResume?: () => void; onStop?: (wasTicking: boolean) => void; onComplete?: () => void; onReset?: () => void; onStart?: () => void; } export declare function mapRange(value: number, inStart: number, inEnd: number, outMin: number, outMax: number): number; export declare class TweenController<T extends TweenControllerConfig = TweenControllerConfig> { protected config: T; protected ticker: Ticker; protected _overridden: boolean; protected _duration: number; protected listeners: Map<string, any>; protected _resolved: boolean; protected _paused: boolean; protected _passed: number; protected _progress: number; protected _reversed: boolean; protected _started: boolean; protected lastProgress: number; protected lastDelay: number; private task?; private resolveFn?; constructor(config?: T); protected callback(fn?: any, values?: any[]): void; protected beforeStart(): void; protected beforeStop(): void; protected beforeSeek(): void; onStart(cb: () => void): this; onComplete(cb: () => void): this; onStop(cb: (wasTicking: boolean) => void): this; protected callListeners(name: string, args?: any[]): void; private setListener; get progress(): number; get delay(): number; get duration(): number; get paused(): boolean; get complete(): boolean; get passed(): number; get reversed(): boolean; get ticking(): boolean; protected resolve(): void; override(overridden?: boolean): this; start(startFrom?: number, noReset?: boolean): this; resume(): this; pause(paused?: boolean): this; stop(noEvents?: boolean): this; hasStarted(ms: number): boolean; seekDelay(ms: number, noDelay?: boolean, noEvents?: boolean): boolean; preSeek(ms: number, noEvents?: boolean): boolean; seek(ms: number, noDelay?: boolean, noEvents?: boolean): this; reset(seek?: number, noEvents?: boolean): this; reverse(): this; then(onFulfilled: (controller: Omit<this, 'then'>) => void): Promise<this>; process(eased: number, linear: number): this; }