@lightningjs/renderer
Version:
Lightning 3 Renderer
63 lines (62 loc) • 1.76 kB
TypeScript
import { EventEmitter } from '../../common/EventEmitter.js';
import type { AnimationManager } from './AnimationManager.js';
import { type TimingFunction } from './utils.js';
export declare enum StopMethodFlags {
Immediate = 0,
Reset = 1,
Reverse = 2
}
export type StopMethodOptions = 'reverse' | 'reset' | 'immediate';
export declare const getStopMethodFlag: (method: string | undefined) => StopMethodFlags;
export interface PlaybackSettings {
delay: number;
duration: number;
easing: string | TimingFunction;
loop: boolean;
repeat: number;
reverse: boolean;
stopMethod: StopMethodOptions;
}
export declare enum PlaybackState {
Idle = 0,
Destroyed = 1,
Stopped = 2,
Finished = 3,
Paused = 4,
Playing = 5,
Stopping = 6
}
export declare const PlaybackSettingsKeys: {
delay: boolean;
duration: boolean;
easing: boolean;
loop: boolean;
repeat: boolean;
reverse: boolean;
stopMethod: boolean;
};
export declare function getPlaybackId(): number;
export default class Playback extends EventEmitter {
readonly animationManager: AnimationManager;
readonly id: number;
delay: number;
duration: number;
easing: TimingFunction | null;
loop: boolean;
repeat: number;
reverse: boolean;
stopMethod: StopMethodFlags;
state: PlaybackState;
startTime: number | null;
pauseTime: number | null;
endTime: number | null;
currentTime: number;
iteration: number;
constructor(animationManager: AnimationManager, settings?: Partial<PlaybackSettings>);
update(currentFrameTime: number): void;
updateValues(currentTime: number): void;
applyStartValues(): void;
start(): this;
stop(): void;
finish(): void;
}