| 12345678910111213141516171819202122232425262728293031323334 |
- 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<sp.SkeletonData>(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();
- }
- }
|