// -------------------------------------------------------------------- // @author: shiraho@syg.com(必填, 创建模块的人员) // @description: // 圆形头像 //
Create: new Date().toISOString() // -------------------------------------------------------------------- var PathTool = require("pathtool"); var PlayerHead = cc.Class({ extends: BasePanel, ctor: function () { this.prefabPath = PathTool.getPrefabPath("mainui", "head_item"); }, initPanel: function () { // 头像部分 this.container = this.root_wnd.getChildByName("container"); this.icon = this.container.getChildByName("icon").getComponent(cc.Sprite); // 头像框 this.frame = this.root_wnd.getChildByName("frame").getComponent(cc.Sprite); // 等级部分 this.lev_container = this.root_wnd.getChildByName("lev_container"); this.lev_container.active = false; this.lev = this.lev_container.getChildByName("lev").getComponent(cc.Label); this.click_icon = this.root_wnd.getChildByName("click"); if (this.lev_value != null) { this.lev.string = this.lev_value; this.lev_container.active = true; } if (this.head_res) { this.loadHeadRes(this.head_res); } if (this.frame_res != null) { this.loadFrameRes(this.frame_res,this.frame_scale); } if (this.scale_value != null) { this.setScale(this.scale_value) } if (this.grey_bool != null) { this.setLockStatus(this.grey_bool); } }, registerEvent: function () { if (this.call_back) { this.click_icon.on(cc.Node.EventType.TOUCH_END, function () { this.call_back(this); }, this); } }, onShow: function () { }, onHide: function () { }, // 点击事件 addCallBack: function (call_back) { this.call_back = call_back; }, // 设置头像资源 setHeadRes: function (res) { if (this.root_wnd) { this.loadHeadRes(res); } else { this.head_res = res; } }, // 设置头像框资源 setFrameRes: function (res,scale) { if (this.root_wnd) { this.loadFrameRes(res,scale); } else { this.frame_res = res; this.frame_scale = scale; } }, // 设置等级显示 setLev: function (lev) { if (this.root_wnd) { this.lev.string = lev; this.lev_container.active = true; } else { this.lev_value = lev; } }, // 设置锁定状态 setLockStatus: function (bool) { this.grey_bool = bool; if (this.root_wnd == null) return if (bool) { this.icon.setState(cc.Sprite.State.NORMAL); this.frame.setState(cc.Sprite.State.NORMAL); } else { this.icon.setState(cc.Sprite.State.GRAY); this.frame.setState(cc.Sprite.State.GRAY); } }, // 加载资源,这里可能需要判断一下加载回来的是不是我需要的资源,私有方法 不能外部调用,外部滴啊用请用 setHeadRes loadHeadRes: function (res_id) { var res_path = PathTool.getHeadRes(res_id); this.loadRes(res_path, function (resObject) { this.icon.spriteFrame = resObject; }.bind(this)) }, // 加载资源,这里可能需要判断一下加载回来的是不是我需要的资源,私有方法 不能外部调用,外部滴啊用请用 setFrameRes //scale默认比例是大部分需要缩放所以用了100/117,其他情况结合自己界面修改scale值 loadFrameRes: function (bid,scale) { if(scale == null){ scale = 100/117; } if(typeof (bid) == "number"){ var config = Config.avatar_data.data_avatar[bid]; if (!config) { return; } var res_path = PathTool.getHeadcircle(config.res_id); this.loadRes(res_path, function (resObject) { this.frame.spriteFrame = resObject; }.bind(this)) this.frame.node.scale = scale; if(bid == 1000){ this.frame.node.y = 0; }else{ this.frame.node.y = 5; } }else{ this.loadRes(bid, function (resObject) { this.frame.spriteFrame = resObject; }.bind(this)) this.frame.node.scale = scale; } }, setScale: function (value) { this.scale_value = value; if (this.root_wnd) this.root_wnd.scale = value; }, //背景框 showBg:function(res,scale){ this.setFrameRes(res,scale); }, setSex:function(sex,pos){ if(sex == null || typeof(sex) != "number")return if(sex >= 2)return if(this.sex_icon_sp == null){ this.sex_icon_sp = Utils.createImage(this.root_wnd, null, 0, 0, cc.v2(0,0)); } this.loadRes(PathTool.getUIIconPath("common","common_sex"+sex),function(sp){ this.sex_icon_sp.spriteFrame = sp; }.bind(this)) if(pos != null && this.sex_icon_sp != null){ this.sex_icon_sp.node.setPosition(pos); } }, onDelete: function () { // this.container.off(cc.Node.EventType.TOUCH_END, function () {}, this); }, clearHead: function() { this.icon.spriteFrame = null; }, });