import { SpriteFrameManager } from "./SpriteFrameManager"; import Utils from "../utils/utils"; /** * 动画生成管理器 */ export class AnimationFactory { public static readonly DEFAULT_ANIMATION_EVENT: string = "finished"; public static readonly DEFAULT_ANIMATION_NAME: string = "idle"; public static create(fileName: string, spriteNameFormat:string, minIndex:number, maxIndex:number, delay:number, name:string = AnimationFactory.DEFAULT_ANIMATION_NAME, isReverse:boolean = false): cc.AnimationClip { let frames : [cc.SpriteFrame]; for(let i = minIndex; i <= maxIndex; i++){ // Benz.log("[AnimationFactory] Add Frame {0}", Benz.format(spriteNameFormat, Benz.dataLeftCompleting(3, "0", i))); frames.push(SpriteFrameManager.getInstance().getSpriteFrame(fileName, Utils.format(spriteNameFormat, Utils.dataLeftCompleting(3, "0", i)))); } if(isReverse){ for(let i = maxIndex; i >= minIndex; i--){ // Benz.log("[AnimationFactory] Add Frame {0}", Benz.format(spriteNameFormat, Benz.dataLeftCompleting(3, "0", i))); frames.push(SpriteFrameManager.getInstance().getSpriteFrame(fileName, Utils.format(spriteNameFormat, Utils.dataLeftCompleting(3, "0", i)))); } } let clip : cc.AnimationClip = cc.AnimationClip.createWithSpriteFrames(frames, 1 / delay); clip.name = name; // console.log(clip); return clip; } }