51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
import { _decorator, Component, Node, Animation, Sprite, resources, SpriteFrame, CCString, CCInteger, Vec2 } from 'cc';
|
|
import { MyAnimation } from './MyAnimation';
|
|
|
|
const { ccclass, property, requireComponent, executeInEditMode } = _decorator;
|
|
|
|
@ccclass('BaseMyAnimation')
|
|
@requireComponent(Sprite)//依赖组件 精灵
|
|
export default class BaseMyAnimation extends MyAnimation {
|
|
|
|
@property({ type: CCInteger, displayName: 'Ani帧数', tooltip: "Ani总共有多少帧" })
|
|
AnimationFrameCount: number = 0;
|
|
NowSettingCount = 0;
|
|
|
|
@property({ type: CCString, displayName: '默认img路径', tooltip: "img路径" })
|
|
DefaultImgPath = "";
|
|
|
|
@property({ type: [CCString], displayName: 'img路径', tooltip: "img路径" })
|
|
ImgPath: string[] = Array<string>();
|
|
|
|
@property({ type: [CCInteger], displayName: 'img编号', tooltip: "img编号" })
|
|
ImgIndex: number[] = Array<number>();
|
|
|
|
@property({ type: [CCInteger], displayName: '每帧时间', tooltip: "每一帧的持续时间" })
|
|
FrameDelay: Array<number> = Array<number>();
|
|
|
|
|
|
ChangeArr(Aobj, Bobj, FillData) {
|
|
if (Aobj.length < Bobj) {
|
|
for (let index = 0; index < (Bobj - Aobj.length); index++) {
|
|
Aobj.push(FillData);
|
|
}
|
|
} else if (Aobj.length > Bobj) {
|
|
for (let index = 0; index < (Aobj.length - Bobj); index++) {
|
|
Aobj.pop();
|
|
}
|
|
}
|
|
}
|
|
|
|
onAnimationFrameCountChanged() {
|
|
|
|
//如果更改了设置
|
|
if (this.NowSettingCount != this.AnimationFrameCount) {
|
|
this.ChangeArr(this.ImgPath, this.AnimationFrameCount, '`NoImgPath`0');
|
|
this.ChangeArr(this.FrameDelay, this.AnimationFrameCount, 0);
|
|
this.NowSettingCount = this.AnimationFrameCount;
|
|
}
|
|
}
|
|
}
|
|
|
|
|