gif-end-detector
Version:
A library for detecting GIF animation end events, based on libgif.js
55 lines (54 loc) • 1.81 kB
TypeScript
/**
* gifEndDetector - GIFアニメーション終了イベント検知ライブラリ
* libgif.jsをベースにしたシンプルなラッパー
*
* 依存: libgif.js (https://github.com/buzzfeed/libgif-js)
*/
interface SuperGif {
load(callback: () => void): void;
get_canvas(): HTMLCanvasElement;
get_length(): number;
getCurrentFrame(): number;
play(): void;
pause(): void;
move_to(frameIndex: number): void;
drawFrame(): void;
}
interface SuperGifOptions {
src: string;
loop_mode?: boolean;
auto_play?: boolean;
on_end?: () => void;
max_width?: number;
max_height?: number;
[key: string]: any;
}
declare global {
interface Window {
SuperGif: new (options: SuperGifOptions) => SuperGif;
}
}
/**
* gifEndDetectorの公開API型
*/
interface GifEndDetector {
load(callback: (detector: GifEndDetector) => void): GifEndDetector;
onEnd(callback: () => void): GifEndDetector;
onFrame(callback: (frameIndex: number, totalFrames: number) => void): GifEndDetector;
onError(callback: (error: string) => void): GifEndDetector;
setOnDrawFrame(drawFunction: (ctx: CanvasRenderingContext2D, frameIndex: number, totalFrames: number) => void): GifEndDetector;
play(): GifEndDetector;
pause(): GifEndDetector;
reset(): GifEndDetector;
moveToFrame(frameIndex: number): GifEndDetector;
getCanvas(): HTMLCanvasElement | null;
getTotalFrames(): number;
getCurrentFrame(): number;
}
/**
* GIFアニメーション終了検知ライブラリ
* @param source - GIFファイルのパスまたはURL
* @returns GifEndDetectorインスタンス
*/
declare function gifEndDetector(source: string): GifEndDetector;
export default gifEndDetector;