"use strict"; cc._RF.push(module, 'f4c04as1WpF4qH2iJeienwX', 'role_head_panel'); // Scripts/mod/role/view/role_head_panel.js "use strict"; // -------------------------------------------------------------------- // @author: whjing2012@syg.com(必填, 创建模块的人员) // @description: // 头像选择 //
Create: new Date().toISOString() // -------------------------------------------------------------------- var PathTool = require("pathtool"); var RoleController = require("role_controller"); var RoleHeadItem = require("role_head_item"); var CommonScrollView = require("common_scrollview"); var RoleHeadPanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("roleinfo", "role_head_panel"); this.data = null; this.has_list = {}; this.select_bid = 0; }, initPanel: function initPanel() { this.setPosition(0, 0); this.scroll_con = this.root_wnd.getChildByName("scroll_con"); this.ok_btn = this.root_wnd.getChildByName("ok_btn"); // this.loadRes(PathTool.getResFrame("face"), (function(resObject){ // this.face_res_object = resObject; // if(this.cache_has_list){ // this.updateList(this.cache_has_list); // this.cache_has_list = null; // } // }).bind(this)); var setting = { item_class: RoleHeadItem, // 单元类 start_x: 5, // 第一个单元的X起点 space_x: 4, // x方向的间隔 start_y: 0, // 第一个单元的Y起点 space_y: 10, // y方向的间隔 item_width: 141, // 单元的尺寸width item_height: 120, // 单元的尺寸height row: 0, // 行数,作用于水平滚动类型 col: 4, // 列数,作用于垂直滚动类型 once_num: 4, need_dynamic: true }; var scroll_view_size = cc.size(604, 514); this.item_scrollview = new CommonScrollView(); this.item_scrollview.createScroll(this.scroll_con, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting, cc.v2(0.5, 0.5)); RoleController.getInstance().send10325(); }, registerEvent: function registerEvent() { this.ok_btn.on(cc.Node.EventType.TOUCH_END, function () { if (this.select_bid) { RoleController.getInstance().send10327(this.select_bid); } }, this); this.roleVo = RoleController.getInstance().getRoleVo(); if (!this.role_update_evt) { this.role_update_evt = this.roleVo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, val) { if (key == "face_id") { this.updateList(); } else if (key == "face_list") { this.updateList(val); } }, this); } }, onShow: function onShow() {}, updateList: function updateList(has_list) { // if(!this.face_res_object){// 资源未加载 // this.cache_has_list = has_list || this.cache_has_list; // return; // } if (has_list) { this.has_list = this.has_list || {}; for (var k in has_list) { this.has_list[has_list[k].face_id] = 1; } } // for (var k in Config.partner_data.data_partner_base) { // var v = Config.partner_data.data_partner_base[k]; // if (v.bid == this.roleVo.face_id) { // list.push({ bid: v.bid, face_id: v.bid, use: 1, status: 1, sort: 1100000 - v.bid }); // } else if (this.has_list[v.bid]) { // list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 1, sort: 100000 - v.bid }); // } else { // list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 0, sort: -v.bid }); // } // } if (this.list == null) { this.list = []; for (var _k in Config.looks_data.data_head_data) { var v = Config.looks_data.data_head_data[_k]; var data = {}; data.tips = v.tips; data.bid = v.id; data.face_id = v.id; if (this.has_list) { if (this.has_list[v.id]) { data.status = 1; //拥有 } else { data.status = 0; //未拥有 } } else { data.status = 0; } if (this.roleVo.face_id == v.id) { data.use = 1; } else { data.use = 0; } this.list.push(data); } } else { for (var i in this.list) { var _data = this.list[i]; if (this.roleVo.face_id == _data.bid) { _data.use = 1; } else { _data.use = 0; } } } // this.list.sort(Utils.tableLowerSorter(["use", "status","bid"])); // this.list.sort(Utils.tableUpperSorter(["use", "status"])); this.list.sort(Utils.tableCommonSorter([["use", true], ["status", true], ["bid", false]])); if (this.select_bid == 0) this.select_bid = this.roleVo.face_id; this.item_scrollview.setData(this.list, function (cell) { if (cell.data.status == 0) { // var config = Config.partner_data.data_partner_base[cell.data.bid]; // message(cc.js.formatStr(Utils.TI18N("激活%s可解锁"), config.name)); message(Utils.TI18N(cell.data.tips)); } else { this.select_bid = cell.data.bid; if (this.select_item) { this.select_item.setSelected(false); } this.select_item = cell; this.setSelected(cell); } }.bind(this), { resObject: this.face_res_object, select_func: this.setSelected.bind(this) }); this.item_scrollview.addEndCallBack(function () { cc.log(this.item_scrollview); }.bind(this)); }, setSelected: function setSelected(item) { if (item) { item.setSelected(this.select_bid == item.data.bid); if (this.select_item == null) { this.select_item = item; } } }, onHide: function onHide() {}, onDelete: function onDelete() { if (this.role_update_evt) { this.roleVo.unbind(this.role_update_evt); } if (this.item_scrollview) { this.item_scrollview.DeleteMe(); } this.item_scrollview = null; } }); module.exports = RoleHeadPanel; cc._RF.pop();