@9am/fire-flame
Version:
A fire flame library.
49 lines (48 loc) • 1.56 kB
TypeScript
import Vector from './vector';
import Particle from './particle';
import { Painter, CanvasPainter, SVGPainter } from './painter';
export declare type PainterType = 'canvas' | 'svg';
export declare type SizeCurveFunction = (x: number, prev: number) => number;
export interface FireFlameOption {
x?: number;
y?: number;
mousemove?: boolean;
w?: number;
h?: number;
fps?: number;
wind?: Vector;
friction?: number;
particleNum?: number;
particleDistance?: number;
particleFPS?: number;
sizeCurveFn?: SizeCurveFunction;
innerColor?: string;
outerColor?: string;
painterType?: PainterType;
}
declare class FireFlame extends Vector {
readonly container: HTMLElement;
protected option: FireFlameOption;
protected painter: Painter;
protected pIndex: number;
protected particles: Map<number, Particle>;
protected spawnAnimation: any;
protected renderAnimation: any;
protected static painterMap: {
canvas: typeof CanvasPainter;
svg: typeof SVGPainter;
};
static getDefaultOption(): FireFlameOption;
constructor(container: HTMLElement, option?: FireFlameOption);
protected preparePainter(pType: PainterType): void;
start(): void;
stop(): void;
setOption(option: FireFlameOption): void;
protected spawn: () => void;
protected updateParticles(): void;
protected getPath(): Array<[Vector, Vector]>;
protected render: () => void;
protected onMove: (evt: MouseEvent) => void;
destroy(): void;
}
export default FireFlame;