"use strict"; cc._RF.push(module, '30b0bjFY85GjrR9Du6UKr6X', 'common_explain_window'); // Scripts/common/common_explain_window.js "use strict"; // -------------------------------------------------------------------- // @author: shiraho@syg.com(必填, 创建模块的人员) // @description: // 通用的规则说明面板,只需要传固定格式的就行了 //
Create: new Date().toISOString() // -------------------------------------------------------------------- var PathTool = require("pathtool"); var CommonExplainWindow = cc.Class({ "extends": BaseView, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("common", "common_explain_view"); this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意 this.win_type = WinType.Mini; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips this.ctrl = arguments[0]; }, // 初始化一些配置数据,可以用于声明一些变量之类的 initConfig: function initConfig() { this.max_height = 0; this.cache_list = []; this.title_str = Utils.TI18N("规则"); this.color_1 = new cc.Color(0x68, 0x45, 0x2a, 0xff); }, openCallBack: function openCallBack() { this.background = this.root_wnd.getChildByName("background"); this.background.scale = FIT_SCALE; this.container = this.root_wnd.getChildByName("container"); this.close_btn = this.container.getChildByName("close_btn"); this.scroll_view = this.container.getChildByName("scroll_view"); this.scroll_content = this.scroll_view.getChildByName("content"); this.scroll_view_compend = this.scroll_view.getComponent(cc.ScrollView); this.scroll_width = this.scroll_view.getContentSize().width; this.scroll_height = this.scroll_view.getContentSize().height; this.win_title = this.container.getChildByName("win_title").getComponent(cc.Label); this.win_title.string = this.title_str; }, registerEvent: function registerEvent() { Utils.onTouchEnd(this.background, function () { this.ctrl.openCommonExplainView(false); }.bind(this), 2); Utils.onTouchEnd(this.close_btn, function () { this.ctrl.openCommonExplainView(false); }.bind(this), 2); }, openRootWnd: function openRootWnd(tmpInfo) { if (tmpInfo && tmpInfo.length >= 2) { this.title_str = tmpInfo[1]; this.setDataList(tmpInfo[0]); } }, setDataList: function setDataList(list) { this.render_list = list; for (var i in this.render_list) { gcore.Timer.set(function (v) { this.createList(v); }.bind(this, this.render_list[i]), i / 60, 1, "render_list" + i); } }, createList: function createList(data) { var info = this.createTitleContent(data); this.scroll_content.addChild(info.container); this.cache_list.push(info.container); this.max_height = this.max_height + info.height + 30; var max_height = Math.max(this.max_height, this.scroll_height); this.scroll_content.setContentSize(cc.size(this.scroll_width, max_height)); var off_y = 0; for (var i in this.cache_list) { this.cache_list[i].setPosition(8, max_height - off_y); off_y = off_y + this.cache_list[i].getContentSize().height + 30; } this.scroll_view_compend.scrollToTop(0); }, createTitleContent: function createTitleContent(data) { if (data == null) return; var container = new cc.Node(); container.setAnchorPoint(cc.v2(0, 1)); var _height = 0; if (data.title == " " || data.title == "") { var content = Utils.createRichLabel(24, this.color_1, cc.v2(0, 1), cc.v2(0, 0), 30, 605); content.horizontalAlign = cc.macro.TextAlignment.LEFT; content.string = Utils.splitDataStr(data.desc); container.addChild(content.node); var _width = this.scroll_width - 8; _height = content.node.getContentSize().height; container.node.setContentSize(cc.size(_width, _height)); content.node.y = _height - 8; } else { // 重新矫正一下位置坐标 var title_bg = Utils.createImage(container, null, 0, 0, cc.v2(0, 1), true, 0, true); title_bg.type = cc.Sprite.Type.SLICED; title_bg.sizeMode = cc.Sprite.SizeMode.CUSTOM; title_bg.node.setContentSize(cc.size(617, 44)); var title = Utils.createLabel(26, this.color_1, null, 5, -title_bg.node.height * 0.5, data.title, title_bg.node, 0, cc.v2(0, 0.5)); this.loadRes(PathTool.getCommonIcomPath("common_90025"), function (resObject) { title_bg.spriteFrame = resObject; }.bind(this)); var content = Utils.createRichLabel(24, this.color_1, cc.v2(0, 1), cc.v2(0, 0), 30, 605); content.horizontalAlign = cc.macro.TextAlignment.LEFT; content.string = Utils.splitDataStr(data.desc); container.addChild(content.node); var _width = this.scroll_width - 8; _height = title_bg.node.height + content.node.height; container.setContentSize(cc.size(_width, _height)); title_bg.node.y = 0; content.node.y = title_bg.node.y - title_bg.node.height - 8; } return { container: container, height: _height }; }, closeCallBack: function closeCallBack() { if (this.render_list) { for (var i in this.render_list) { gcore.Timer.del("render_list" + i); } } this.cache_list = null; this.title_str = null; this.max_height = null; this.ctrl.openCommonExplainView(false); } }); module.exports = CommonExplainWindow; cc._RF.pop();