import { h } from 'preact'; /** * 帧动画组件 * * @param rootId 根节点id * @param rootClassName 根节点className * @param totalTime 动画总时长 * @param width 组件宽度 * @param height 组件高度 * @param srcArr 图片 url 数组 * @param onShow 每一帧显示时的回调 * @param onFinish 动画结束时的回调 * @param preloadCount 预加载节点的数量 (最少 3) * @param loop 是否循环播放 * @param showLastFrame 播放结束后是否显示最后一帧 * @param cRef 外部组件引用(暴露 seek(frameIndex:number) 方法) */ export interface FrameAnimationHandle { /** 跳转到指定帧(从 0 开始计数) */ seek: (frameIndex: number) => void; /** 开始播放(从当前已显示帧继续) */ play: () => void; /** 暂停播放(不清理预加载) */ pause: () => void; } export interface FrameAnimationProps { rootId?: string; rootClassName?: string; /** 动画总时长(毫秒) */ totalTime: number; /** 组件宽度,如 "500px" */ width: string; /** 组件高度,如 "300px" */ height: string; /** 每帧图片 URL 数组(与 spriteClassArr 二选一) */ srcArr?: string[]; /** 每帧对应的样式类名数组(className),在样式中指定 background-image 等 */ spriteClassArr?: string[]; /** 每一帧显示的回调 */ onShow?: (nowframe: number) => void; /** 动画结束回调 */ onFinish?: () => void; /** 预加载节点数量,最少 3 */ preloadCount?: number; /** 是否循环播放 */ loop?: boolean; /** 播放结束后是否显示最后一帧 */ showLastFrame?: boolean; /** 播放范围起始帧 (包含) */ rangeStart?: number; /** 播放范围结束帧 (包含) */ rangeEnd?: number; /** 外部组件引用,用于调用 seek 方法 */ cRef?: any; /** 是否在初始化后自动播放(默认 true) */ autoplay?: boolean; } export declare const FrameAnimation: (props: FrameAnimationProps) => h.JSX.Element;