var i = cc.Enum({ xunhuan: 1, zhengchang: 0 }); cc.Class({ extends: cc.Component, properties: { Soldier: { default: null, type: sp.Skeleton, displayName: "动画" }, startTime: { default: 0, displayName: "起始延迟时间" }, endTime: { default: 0, displayName: "结束延迟时间" }, huanyuanTime: { default: 1e3, displayName: "还原时间" }, aniName: { default: "", displayName: "要播放的动画名字" }, aniNameHuanyuan: { default: "", displayName: "要还原的动画名字" }, ainCishu: { type: cc.Enum(i), default: i.xunhuan, displayName: "动画播放次数" }, hideNode: { type: cc.Node, default: [], displayName: "需要隐藏的节点" }, showNode: { type: cc.Node, default: [], displayName: "需要显示的节点" }, eventNode_over: { default: [], type: cc.Node, displayName: "需要合并的事件节点" }, SkinName: { default: "", displayName: "要修改的皮肤名称" } }, start: function () { this.node.switchEvent = this.switchEvent.bind(this); this.xunhuan = true; 0 == this.ainCishu && (this.xunhuan = false); }, switchEvent: function () { var e = this; console.log("播放动画"); cc.tween(this.node).delay(this.startTime).call(function () { e.SkinName && e.Soldier.setSkin(e.SkinName); e.Soldier && e.aniName && e.Soldier.setAnimation(0, e.aniName, e.xunhuan); e.Soldier && e.aniNameHuanyuan && setTimeout(function () { console.log("播放动画=================="); e.Soldier.setAnimation(0, e.aniNameHuanyuan, true); }, e.huanyuanTime); setTimeout(function () { if (e.hideNode) { for (var o = 0; o < e.hideNode.length; o++) { e.hideNode[o].active = false; } } if (e.showNode) { for (var t = 0; t < e.showNode.length; t++) { e.showNode[t].active = true; } } for (var i = 0; i < e.eventNode_over.length; i++) { e.eventNode_over[i] && e.eventNode_over[i].switchEvent(); } }, e.endTime); }).start(); } });