"use strict"; cc._RF.push(module, '8a45c6fsZRMipMZYWey4Pe5', 'arena_champion_top_32_1_panel'); // Scripts/mod/arena/view/champion/arena_champion_top_32_1_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里是描述这个窗体的作用的 //
Create: 2019-03-15 14:10:50 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var ArenaEvent = require("arena_event"); var ArenaConst = require("arena_const"); var ArenaChampionTop321Panel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("arena", "arena_champion_top_32_1_panel"); this.ctrl = arguments[0]; this.model = this.ctrl.getChamPionModel(); }, // 可以初始化声明一些变量的 initConfig: function initConfig() { this.cur_page = 0; this.role_list = null; this.page_infos = {}; }, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { this.page_item_nd = this.seekChild("page_item"); this.page_content_nd = this.seekChild("page_content"); this.pageview_nd = this.seekChild("pageview"); this.pageview_pg = this.seekChild("pageview", cc.PageView); this.left_btn = this.seekChild("left_btn", cc.Button); this.right_btn = this.seekChild("right_btn", cc.Button); var pagte_item_nds = this.pagte_item_nds = []; pagte_item_nds[0] = this.page_item_nd; for (var page_i = 1; page_i < 4; page_i++) { pagte_item_nds[page_i] = cc.instantiate(this.page_item_nd); var page_item_content = this.seekChild("page_item_conten_" + page_i); page_item_content.addChild(pagte_item_nds[page_i]); } this.pageview_nd.on("page-turning", this.onPageChanged, this); this.notice_label = new cc.Node().addComponent(cc.Label); this.root_wnd.addChild(this.notice_label.node); this.notice_label.fontSize = 22; this.notice_label.horizontalAlign = cc.macro.TextAlignment.CENTER; this.notice_label.verticalAlign = cc.macro.TextAlignment.CENTER; this.notice_label.lineHeight = 24; this.notice_label.node.color = new cc.Color(0xff, 0x8d, 0x55); this.notice_label.node.setAnchorPoint(cc.v2(0.5, 0)); this.notice_label.node.setPosition(0, this.root_wnd.height / 2); this.addTurnCallBack(); }, onPageChanged: function onPageChanged(event) { this.cur_page = event.getCurrentPageIndex(); this.updatePageInfo(); this.addTurnCallBack(); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.addGlobalEvent(ArenaEvent.UpdateTop32InfoEvent, function (data) { if (data) this.updateTop32InfoList(data); }.bind(this)); // 压注更新 this.addGlobalEvent(ArenaEvent.UpdateTop324GuessGroupEvent, function (group, pos) { this.group = group; this.pos = pos; if (group && pos) { this.updateGuessStatus(); } else { for (var page_i in this.page_infos) { this.page_infos[page_i].guess_btn_nd.active = false; } } }.bind(this)); this.left_btn.node.on("click", function () { this.pageview_pg.scrollToPage(this.cur_page - 1); }, this); this.right_btn.node.on("click", function () { this.pageview_pg.scrollToPage(this.cur_page + 1); }, this); }, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow(params) { this.updateWidgets(); }, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() {}, updateBaseInfo: function updateBaseInfo() { if (this.root_wnd) this.updateWidgets(); }, updateWidgets: function updateWidgets() { var base_info = this.base_info = this.model.getBaseInfo(); var role_info = this.role_info = this.model.getRoleInfo(); if (!base_info || !role_info) return; this.ctrl.sender20260(); }, updateTop32InfoList: function updateTop32InfoList(data) { if (data && data.list) { this.data = data; this.goup_list = data.list; if (this.root_wnd) this.updatePageInfo(); } this.ctrl.sender20262(); }, updatePageInfo: function updatePageInfo() { var page_info = this.page_infos[this.cur_page]; if (!page_info) { page_info = this.page_infos[this.cur_page] = {}; page_info.role_name_list = {}; page_info.role_pos_list = {}; page_info.pos_line_list = {}; page_info.pos_line_list_2 = {}; page_info.check_bnt_list = {}; var apge_nd = this.pagte_item_nds[this.cur_page]; page_info.guess_btn_nd = this.seekChild(apge_nd, "guess_btn"); page_info.guess_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickGuessBtn, this); page_info.guess_btn_nd.active = false; // pos name for (var role_i = 1; role_i <= 14; role_i++) { // name var name_info = page_info.role_name_list[role_i] = {}; name_info.name_nd = this.seekChild(apge_nd, "role_name_" + role_i); name_info.name_lb = name_info.name_nd.getComponent(cc.Label); name_info.name_lb.string = ""; // pso var pos_info = page_info.role_pos_list[role_i] = {}; var pos_nd = this.seekChild(apge_nd, "role_pos_" + role_i); pos_info.normal = pos_nd.getChildByName("normal"); pos_info.normal_sp = pos_info.normal.getComponent(cc.Sprite); pos_info.select = pos_nd.getChildByName("select"); pos_info.select.active = false; } // line_list 位置线 for (var line_i = 1; line_i <= 12; line_i++) { var line_info = page_info.pos_line_list[line_i] = {}; var line_node = this.seekChild(apge_nd, "pos_line_" + line_i); line_info.normal_1 = line_node.getChildByName("normal_1"); line_info.normal_2 = line_node.getChildByName("normal_2"); line_info.select_1 = line_node.getChildByName("select_1"); line_info.select_2 = line_node.getChildByName("select_2"); line_info.select_1.active = false; line_info.select_2.active = false; line_info.normal_1.active = true; line_info.normal_2.active = true; } // 公共线 查看按钮 for (var line_i = 1; line_i <= 7; line_i++) { var index_1 = (line_i - 1) * 2 + 1; var index_2 = line_i * 2; var line2_info = page_info.pos_line_list_2[index_1 + "_" + index_2] = {}; var line2_nd = this.seekChild(apge_nd, "pos_line_" + index_1 + "_" + index_2); line2_info.normal = line2_nd.getChildByName("normal"); line2_info.select = line2_nd.getChildByName("select"); line2_info.select.active = false; line2_info.normal.active = true; var check_btn_nd = this.seekChild(apge_nd, "check_btn_" + index_1); page_info.check_bnt_list[index_1] = check_btn_nd; check_btn_nd.index_1 = index_1; check_btn_nd.active = false; check_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickCheckBtn, this); } } // page_info var role_list = this.role_list = this.goup_list[this.cur_page].pos_list; this.notice_label.string = ArenaConst.getGroup(this.goup_list[this.cur_page].group); for (var role_i in role_list) { var role_info = role_list[role_i]; if (page_info.role_name_list[role_info.pos]) { var name_info = page_info.role_name_list[role_info.pos]; var line_info = page_info.pos_line_list[role_info.pos]; var pos_info = page_info.role_pos_list[role_info.pos]; name_info.name_lb.string = role_info.name; var name_color = null; // 文字色 var normal_status = null; // 底图是否置灰 var is_select = false; var is_line = false; if (role_info.ret === 0) { // 未打 name_color = new cc.Color().fromHEX("#68452a"); normal_status = cc.Sprite.State.NORMAL; } else if (role_info.ret === 1) { // 胜利 name_color = new cc.Color().fromHEX("#68452a"); normal_status = cc.Sprite.State.NORMAL; is_select = true; is_line = true; } else { // 失败 name_color = new cc.Color(0x5b, 0x5b, 0x5b, 0xff); normal_status = cc.Sprite.State.GRAY; } name_info.name_nd.color = name_color; pos_info.normal_sp.setState(normal_status); pos_info.select.active = is_select; if (line_info && line_info.select_1) line_info.select_1.active = is_line; if (line_info && line_info.select_2) line_info.select_2.active = is_line; // 公共line, 打过了就显示 var check_index = 0; var public_index = 0; if (role_info.pos % 2 === 0) { var check_index = role_info.pos - 1; var public_index = check_index + "_" + role_info.pos; } else { var check_index = role_info.pos; var public_index = check_index + "_" + role_info.pos + 1; } var is_active = false; if (role_info.ret !== 0) { is_active = true; } if (page_info.pos_line_list_2[public_index]) page_info.pos_line_list_2[public_index].select.active = is_active; // 查看btn page_info.check_bnt_list[check_index].active = is_active; } } if (this.group && this.pos) { this.updateGuessStatus(); } }, onClickCheckBtn: function onClickCheckBtn(event) { if (event.target.index_1) { gcore.GlobalEvent.fire(ArenaEvent.CheckFightInfoEvent, true, this.role_list.group, event.target.index_1); } }, updateGuessStatus: function updateGuessStatus() { var group = this.group; var pos = this.pos; if (group && pos && this.page_infos[group - 1]) { var page_info = this.page_infos[group - 1]; var check_btn = page_info.check_bnt_list[pos]; page_info.guess_btn_nd.active = true; page_info.guess_btn_nd.position = check_btn.position; } }, // 点击了竞猜按钮 onClickGuessBtn: function onClickGuessBtn() { this.ctrl.updateChampionTab(2); }, addTurnCallBack: function addTurnCallBack() { if (this.cur_page == 0) { this.left_btn.interactable = false; this.left_btn.enableAutoGrayEffect = true; this.right_btn.interactable = true; this.right_btn.enableAutoGrayEffect = false; } else if (this.cur_page == 3) { this.left_btn.interactable = true; this.left_btn.enableAutoGrayEffect = false; this.right_btn.interactable = false; this.right_btn.enableAutoGrayEffect = true; } else { this.left_btn.interactable = true; this.left_btn.enableAutoGrayEffect = false; this.right_btn.interactable = true; this.right_btn.enableAutoGrayEffect = false; } } }); cc._RF.pop();