import { AnimationMixer, AnimationClip } from 'three'; import { Component } from '../component'; import { RenderComponent } from '../render'; import { World } from '../world'; import { ActiveAnimation, Clip } from './type'; declare class Animation extends Component { /**动画集合 */ private _animationCollection; /**当前激活动画 */ protected _activeAnimation: ActiveAnimation | null; /**动画混合器 */ protected _mixers: AnimationMixer; /**是否正在播放动画 */ protected _isPlaying: boolean; /**负责展示动画的对象*/ readonly com: RenderComponent; constructor(com: RenderComponent); update(world: World, delay: number): void; /** * 添加动画片段 * @param clip 动画片段 */ add(clip: AnimationClip): void; /** * 将sourceClip上的动画进行切割并调用add方法 * @param sourceClip 需要切割的动画 * @param clips * clips = clip[] * clip.name 新动画的名称 * clip.startFrame 新动画的起始帧 * clip.endFrame 新动画的结束帧 */ slice(sourceClip: THREE.AnimationClip, clips: Clip[]): void; /** * 播放动画 * @param name 动画名 * @param loopTotal 动画的循环次数 默认 Infinity * @returns 返回一个Promise. * 成功没有返回值 * 失败返回一个code状态码 * 1:没有找到动画 * 2:动画正在播放 * 3:动画播放过程中被中断(stop dispose) */ play(name: string, loopTotal?: number): Promise; dispose(): void; } export { Animation };