Files
game1/assets/_script/SlotTools_1.js
T
tothvillar e896e2ead4 init
2026-07-09 15:04:14 +08:00

84 lines
2.0 KiB
JavaScript

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);
}
});