"use strict"; cc._RF.push(module, 'f6a69rEhTJOTpMLLxOmq6zL', 'wnd.theme.entry1'); // Scripts/mod/acts/themes/wnd.theme.entry1.js "use strict"; /****************************************************************** * * 主題入口樣式1 * ******************************************************************/ var BridgeWindow = require("bridge.window"); var NxSpine = require("nx.fx.spine"); var TDefine = require("trace.define"); var TTT = TDefine.TraceType; cc.Class({ "extends": BridgeWindow, properties: { nodMenu: { "default": null, type: cc.Node }, spBG: { "default": null, type: NxSpine }, spSlots: { "default": null, type: NxSpine }, imgLogo: { "default": null, type: cc.Node }, nodClose: { "default": null, type: cc.Node }, nodDate: { "default": null, type: cc.Node }, lstEntries: { "default": [], type: cc.Node } }, // 载入 onLoad: function onLoad() { var _this = this; nx.gui.setActive(this.imgLogo, "", false); nx.gui.setActive(this.nodClose, "", false); nx.gui.setActive(this.nodMenu, "", false); nx.gui.setActive(this.nodDate, "", false); nx.gui.setActive(this.spBG, "", false); nx.gui.setActive(this.spSlots, "", false); this.lstEntries.forEach(function (_entry) { nx.gui.setActive(_this.nodDate, "", false); }); }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) { // 信息构建 this.buildData(_params); // 背景动画 this.doStart(); // 埋点 if (nx.mTrace) { nx.mTrace.trace(TTT.actThemeOpened, _params.theme_id); } }, // 信息构建 buildData: function buildData(_params) { var _this2 = this; // 无效参数 if (nx.dt.objEmpty(_params) || !nx.dt.numPositive(_params.theme_id, false) || nx.dt.arrEmpty(_params.theme_holiday_list)) { this.delayClose(); return; } this.theme = _params; // 活动统计 this.acts = {}; _params.theme_holiday_list.forEach(function (_item) { _this2.acts[_item.cate] = _this2.acts[_item.cate] || { name: nx.text.getKey(_item.cate_name), list: [] }; _this2.acts[_item.cate].list.push(_item); }); // 活动日期 var secs = this.theme.end_time - client.socket.getTime(); if (nx.dt.numPositive(secs, false)) { nx.gui.setColor(this.nodDate, "txt", cc.color().fromHEX("#05F515")); nx.gui.setCdTxt(this.nodDate, "txt", secs); } else { nx.gui.setString(this.nodDate, "txt", nx.text.getKey("已过期")); nx.gui.setColor(this.nodDate, "txt", cc.Color.RED); } }, // 背景动画 doStart: function doStart() { var _this3 = this; var self = this; var show = function show() { nx.gui.setActive(self.imgLogo, "", true); nx.gui.setActive(self.nodClose, "", true); nx.gui.setActive(self.nodDate, "", true); self.buildMenu(); }; nx.gui.setActive(this.spBG, "", true); this.spBG.action("show", false, function (_event) { nx.debug("%doStart:" + _event); // 菜单展示 if (_event == "done") { show(); return; } // 完毕 if (_event == "complete") { _this3.spBG.action("loop", true); } }); }, // ------------------------------------------------------- // 菜单相关 // ------------------------------------------------------- // 菜单重建 buildMenu: function buildMenu() { nx.gui.setActive(this.nodMenu, "", true); var keys = Object.keys(this.acts); var chds = this.nodMenu.children; for (var i = 0; i < chds.length; ++i) { var tog = chds[i]; var ifo = this.acts[keys[i]]; if (!ifo) { tog.active = false; continue; } tog.active = true; nx.gui.setString(tog, "on/txt", ifo.name); nx.gui.setString(tog, "off/txt", ifo.name); var tip = nx.gui.getComponent(tog, "off/tip", "nx.vb.visible"); if (tip) { tip.setTarget(nx.mTip, "acts." + this.theme.theme_id + "." + keys[i]); } } this.onTouchMenu(keys[0]); }, // 菜单切换 onTouchMenu: function onTouchMenu(_index) { var key = "tog" + _index; this.nodMenu.children.forEach(function (_tog) { nx.gui.setActive(_tog, "off", _tog.name != key); nx.gui.setActive(_tog, "on", _tog.name == key); }); this.showPage(_index); }, // 页动画展示 showPage: function showPage(_index) { var _this4 = this; // 入口重建&隐藏 this.lstEntries.forEach(function (_entry) { _entry.active = false; }); // 活动重建 var index = parseInt(_index); var acts = this.acts[index]; if (!acts || nx.dt.arrEmpty(acts.list)) { nx.error("$ThemeEntry:\u6D3B\u52A8\u65E0\u6548!" + _index); return; } // 排序 // acts.list.sort( ( _a, _b ) => { // return _a.sort - _b.sort; // } ); // 活动重建 this.lstEntries.forEach(function (_node) { _node.ainfo = null; _node.active = false; nx.gui.setString(_node, "txt", ""); }); for (var i = 0; i < acts.list.length; ++i) { var info = acts.list[i]; var node = this.lstEntries[info.sort - 1]; if (!node) { continue; } node.ainfo = info; node.active = true; nx.gui.setString(node, "txt", nx.text.getKey(info.name)); var tip = nx.gui.getComponent(node, "tip", "nx.vb.visible"); if (tip) { tip.setTarget(nx.mTip, "acts." + this.theme.theme_id + "." + info.cate + "." + info.camp_id); } } nx.gui.setActive(this.spSlots, "", true); this.spSlots.action("show" + index, false, function (_event) { // 显示入口 if (_event == "done") { _this4.lstEntries.forEach(function (_entry) { _entry.active = !!_entry.ainfo; }); } // 完成 if (_event == "complete") { _this4.spSlots.action("loop" + index, true); } }); }, // ------------------------------------------------------- // 入口相关 // ------------------------------------------------------- // 点击入口 onTouchEntry: function onTouchEntry(_item) { var entry = _item ? _item.parent.ainfo : null; if (nx.dt.objEmpty(entry)) { return; } var time = new Date(); var showtime = entry.end_time - time / 1000; if (nx.dt.objEmpty(entry)) { return; } if (showtime < 0) { nx.tbox("StepUpDone"); return; } nx.debug("$ThemeEntry:\u6D3B\u52A8\u70B9\u51FB!" + entry.name); nx.bridge.jumper.jump2Window(entry.source, { theme: this.theme, entry: entry }); this.close(); } }); cc._RF.pop();