import { _decorator, Component, Node, sp, animation, EventHandler } from 'cc'; import { ResourceLoader } from '../core/resourceManager/ResourceLoader'; const { ccclass, property, requireComponent } = _decorator; @ccclass('CommandSpine') @requireComponent(ResourceLoader) export class CommandSpine extends Component { @property({ type: ResourceLoader, tooltip: "资源加载组件" }) res: ResourceLoader; @property({ type: sp.Skeleton, tooltip: "spine组件" }) spine: sp.Skeleton; public autoDestory: boolean = false; public completehandle: Function; start() { this.res = this.getComponent(ResourceLoader); this.spine = this.getComponent(sp.Skeleton); } public async setData(path: string, loop: boolean, amination: string) { let spData = await this.res.load(path, sp.SkeletonData); this.spine.loop = loop; this.spine.skeletonData = spData; this.spine.setAnimation(0, amination, loop); if (this.autoDestory) { this.spine.setCompleteListener(() => { this.completehandle && this.completehandle(); this.node && this.node.destroy(); }); } } public clean(): void { this.node && this.node.destroy(); } }