"use strict"; cc._RF.push(module, '5515bnVKw5I8IlwDbOiz53h', 'cmp.partner.body.show'); // Scripts/mod/partner/cmps/basic/cmp.partner.body.show.js "use strict"; /****************************************************************** * * 伙伴全身立绘动画展示 * ******************************************************************/ var NxSpine = require("nx.fx.spine"); var BridgeComponent = require("bridge.component"); cc.Class({ "extends": BridgeComponent, properties: { spRole: { "default": null, type: NxSpine }, nodLoading: { "default": null, type: cc.Node }, nodTouch: { "default": null, type: cc.Node }, nodDialog: { "default": null, type: cc.Node } }, // 设置伙伴 setPartner: function setPartner(_partner) { // 置空 var sinfo = _partner ? nx.bridge.partner.getShowInfo(_partner) : null; if (!sinfo) { this.setEmpty(); return; } this.partner = _partner; this.setModel(sinfo.sp_show, sinfo.voice, sinfo.phonetic_text); }, // 设置模型动画, 区别显示了 主场景伙伴与 伙伴背包伙伴详情 点击动画与 展示动画 setModel: function setModel(_spath, _voice, _desc, _from) { var _this = this; this.fromOther = _from; // 重复 if (this.modelPath == _spath) { return; } this.setEmpty(); // 更新 this.modelPath = _spath; this.voicePath = _voice; this.desc = nx.dt.objEmpty(this.desc) ? _desc : this.desc; if (nx.dt.strEmpty(this.modelPath)) { return; } // 模型展示 this.spRole.load(this.modelPath, function (_e) { if (!_e) { _this.nodLoading.active = false; _this.nodTouch.active = true; _this.spRole.action(_from ? "drama1" : "action1", true); _this.spRole.node.active = true; } else { _this.spRole.node.active = false; } }); if (this.nodDialog) { nx.gui.setString(this.nodDialog, "txt", this.desc); } }, // 置空 setEmpty: function setEmpty() { this.modelPath = ""; this.spRole.stop(); this.spRole.node.active = false; this.nodLoading.active = false; this.nodTouch.active = false; if (this.nodDialog && this.tween) { this.nodDialog.scale = 0; this.tween.stop(); nx.gui.setActive(this.nodDialog, "", false); } }, // 点击动画 onTouchSpine: function onTouchSpine() { var _this2 = this; // 加载中 if (this.nodLoading.active) { return; } if (this.fromOther) { if (this.spRole.spAction != "drama1") { return; } } else { // 屏蔽频繁点击打断 if (this.spRole.spAction != "action1") { return; } } // 播放 -> 常态 this.spRole.action(this.fromOther ? "drama3" : "action2", false, function (_event) { // 播放语音 if (_event == "start") { _this2.playVoice(); } if (_event == "complete") { _this2.spRole.action(_this2.fromOther ? "drama1" : "action1", true); } }); // this.unscheduleAllCallbacks(); if (this.nodDialog) { nx.gui.setActive(this.nodDialog, "", nx.dt.strNEmpty(this.desc)); this.tween = cc.tween(this.nodDialog).to(0.2, { scale: 1 }).to(3, { scale: 1 }).to(0.2, { scale: 0 }).to(0, function () { nx.gui.setActive(_this2.nodDialog, "", false); }).start(); // this.scheduleOnce( ()=>{ // nx.gui.setActive( this.nodDialog, "", false ); // },3 ); } }, // 播放语音 playVoice: function playVoice() { var _this3 = this; if (nx.dt.strEmpty(this.voicePath)) { return; } if (this.voiceHandle) { nx.audio.stopSFX(this.voiceHandle); this.voiceHandle = null; } nx.audio.playVoice(this.voicePath, function (_err, _id) { if (!_err) { _this3.voiceHandle = _id; } }); } }); cc._RF.pop();