cc.Class({ extends: cc.Component, properties: { Soldier: { default: null, type: sp.Skeleton, displayName: "动画" }, startTime: { default: 0, displayName: "起始延迟时间" }, endTime: { default: 0, displayName: "结束延迟时间" }, slotName: { default: "", displayName: " 卡槽名称" }, SkinName: { default: "", displayName: " 皮肤名称" }, targetAttaName: { default: "", displayName: " 卡槽附件名称" }, aniNameHuanyuan: { default: "", displayName: "要还原的动画名字" }, hideNode: { type: cc.Node, default: [], displayName: "需要隐藏的节点" }, showNode: { type: cc.Node, default: [], displayName: "需要显示的节点" }, eventNode_over: { default: [], type: cc.Node, displayName: "需要合并的事件节点" } }, start: function () { this.node.switchEvent = this.switchEvent.bind(this); this.xunhuan = true; }, switchEvent: function () { var e = this; console.log("播放动画"); cc.tween(this.node).delay(this.startTime).call(function () { e.changeCloth(e.Soldier, e.slotName, e.SkinName, e.targetAttaName); 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(); }, changeCloth: function (e, o, t, i) { console.log("change cloth:", o, t, i); var n = e.findSlot(o); var a = e.skeletonData.getRuntimeData(); var c = a.findSkin(t); var s = a.findSlotIndex(o); var l = c.getAttachment(s, i); n.setAttachment(l); } });