| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // Learn TypeScript:
- // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/typescript.html
- // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
- // Learn Attribute:
- // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
- // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
- // Learn life-cycle callbacks:
- // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
- // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html
- import PoolMgr, { NODEPOOLPREFABTYPE } from "../../mgr/PoolMgr";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class SpineEffectPlay extends cc.Component {
- /**spine动画 */
- public spine: sp.Skeleton = null;
- /**当前的动画名称 */
- public ifLoop: boolean = false;
- /**当前的动画名称 */
- public curAniName: string = "";
- /**spine动画播放结束回调 */
- public spineAniEndCallBack: Function = null;
- @property({
- type: cc.Enum(NODEPOOLPREFABTYPE),
- serializable: true
- })
- public nodePoolPrefabType: NODEPOOLPREFABTYPE = 0;
- // LIFE-CYCLE CALLBACKS:
- // onLoad () {}
- start() {
- }
- onEnable() {
- this.spine = this.getComponent(sp.Skeleton);
- if (!this.spine) {
- mk.console.error("SpineEffectPlay 绑定的节点没有spine")
- return;
- }
- this.spine.setAnimation(0, this.spine.animation, false);
- this.spine.setCompleteListener(() => {
- this.spineLoopAniComplete();
- })
- }
- // update (dt) {}
- /**播放Spine动画 */
- playSpineAni(name: string, ifLoop: boolean = false, callBack: Function = null) {
- if (name) {
- this.curAniName = name;
- this.spine.setAnimation(0, name, ifLoop)
- }
- this.spineAniEndCallBack = callBack;
- }
- /**Spine动画循环播放结束回调函数 */
- spineLoopAniComplete() {
- //LogUtil.log("动画播放完毕!!!!!!")
- if (this.spineAniEndCallBack) {
- this.spineAniEndCallBack();
- }
- if (!this.ifLoop) {
- PoolMgr.Inst.recyclePoolPrefab(this.nodePoolPrefabType, this.node);
- }
- }
- clearLoopAniCompleteCallBack() {
- this.spineAniEndCallBack = null;
- }
- }
|