var TipsController = require("tips_controller")
|
var SkillItem = cc.Class({
|
extends: ViewClass,
|
|
ctor: function () {
|
this.prefabPath = PathTool.getPrefabPath("hero", "skill_item");
|
this.initRootWnd()
|
this.data = null;
|
this.position = null;
|
this.sp_state = null;
|
this.visible = true;
|
this.is_show_tips = null
|
this.bg_status = true;
|
this.btn_status = true;
|
},
|
|
initRootWnd: function () {
|
if (!this.prefabPath) return;
|
LoaderManager.getInstance().loadRes(this.prefabPath, function (root_prefab) {
|
this.root_wnd = root_prefab;
|
if (this.scale)
|
this.setScale(this.scale)
|
if (this.parent)
|
this.parent.addChild(this.root_wnd);
|
if (this.position)
|
this.root_wnd.position = this.position;
|
this.initWidget();
|
this.root_wnd.active = this.visible;
|
if (this.data)
|
this.setData(this.data);
|
if (this.lev_status != null) {
|
this.setLeveStatus(this.lev_status)
|
}
|
if(this.recommondStatus != null){
|
this.showRecommondIcon(this.recommondStatus.bool,this.recommondStatus.qian_type)
|
}
|
if(this.bottomName != null){
|
this.showName(this.bottomName.bool,this.bottomName.name,this.bottomName.pos,this.bottomName.fontSize,this.bottomName.is_bg)
|
}
|
this.showBG(this.bg_status);
|
}.bind(this))
|
},
|
|
initWidget: function () {
|
this.background_sp = this.seekChild("background", cc.Sprite);
|
this.skill_icon_sp = this.seekChild("skill_icon", cc.Sprite);
|
this.level_bg_sp = this.seekChild("level_bg", cc.Sprite);
|
this.level_lb = this.seekChild("level", cc.Label);
|
this.btn = this.root_wnd.getComponent(cc.Button)
|
this.registerEvent()
|
},
|
|
setData: function (skill_data) {
|
if (!skill_data) {
|
if (this.root_wnd){
|
// this.root_wnd.active = false;
|
this.skill_icon_sp.node.active = false;
|
}
|
}
|
this.data = skill_data;
|
if (this.root_wnd){
|
this.updateWidget();
|
this.spriteUnabled()
|
this.buttonEnabled()
|
}
|
},
|
|
setPosition: function (newPosOrX,y) {
|
let x;
|
if (y === undefined) {
|
x = newPosOrX.x;
|
y = newPosOrX.y;
|
}else{
|
x = newPosOrX;
|
}
|
let pos = cc.v2(x,y)
|
this.position = pos;
|
if (this.root_wnd)
|
this.root_wnd.position = pos;
|
},
|
|
setScale: function (scale) {
|
this.scale = scale;
|
if (this.root_wnd){
|
this.root_wnd.scale = scale;
|
}
|
|
},
|
setShowTips(bool){
|
this.is_show_tips = bool|| false
|
},
|
|
updateWidget: function () {
|
|
this.skill_config = gdata("skill_data", "data_get_skill", this.data)
|
if (!this.skill_config) return;
|
|
var skill_icon_path = PathTool.getIconPath("skillicon", this.skill_config.icon);
|
this.loadRes(skill_icon_path, function (icon_sf) {
|
if(!this.root_wnd || !this.root_wnd.isValid)return
|
this.skill_icon_sp.spriteFrame = icon_sf;
|
}.bind(this));
|
this.skill_icon_sp.node.active = true;
|
this.level_lb.string = this.skill_config.level;
|
|
this.upateStatu();
|
},
|
addCallBack(callback){
|
this.callback = callback
|
},
|
setVisible: function (visible) {
|
this.visible = visible;
|
if (this.root_wnd)
|
this.root_wnd.active = visible;
|
},
|
|
// setSpStatus: function (state) {
|
// this.sp_state = cc.Sprite.State.NORMAL;
|
// if (!state)
|
// this.sp_state = cc.Sprite.State.GRAY
|
// if (this.root_wnd) {
|
// this.upateStatu();
|
// }
|
// },
|
|
|
upateStatu: function () {
|
if (this.sp_state === null) return;
|
this.background_sp.setState(this.sp_state);
|
this.skill_icon_sp.setState(this.sp_state);
|
this.level_bg_sp.setState(this.sp_state);
|
this.sp_state = null;
|
},
|
|
setLeveStatus: function (status) {
|
this.lev_status = status;
|
if (this.root_wnd) {
|
this.level_lb.node.active = status;
|
this.level_bg_sp.node.active = status;
|
}
|
},
|
//变灰
|
showUnEnabled(bool){
|
this.is_unabled = bool
|
},
|
spriteUnabled(){
|
if(this.is_unabled){
|
this.background_sp.setState(cc.Sprite.State.GRAY);
|
this.skill_icon_sp.setState(cc.Sprite.State.GRAY);
|
this.level_bg_sp.setState(cc.Sprite.State.GRAY);
|
}else{
|
this.background_sp.setState(cc.Sprite.State.NORMAL);
|
this.skill_icon_sp.setState(cc.Sprite.State.NORMAL);
|
this.level_bg_sp.setState(cc.Sprite.State.NORMAL);
|
}
|
|
},
|
registerEvent(){
|
if(this.root_wnd){
|
this.root_wnd.on("click",function(event){
|
if(this.is_show_tips){
|
// if (event.type === cc.Node.EventType.TOUCH_END) {
|
// this.root_wnd.scale = this.scale || 1;
|
if (this.skill_config){
|
TipsController.getInstance().showSkillTips(this.skill_config, this.is_unabled || false, false, self.tips_hide_flag)
|
}
|
// }
|
}
|
if(this.callback){
|
this.callback()
|
}
|
},this)
|
}
|
},
|
|
showBG: function(status) {
|
this.bg_status = status;
|
if (this.root_wnd) {
|
if (this.bg_status) {
|
this.background_sp.node.active = true;
|
} else {
|
this.background_sp.node.active = false;
|
}
|
}
|
},
|
buttonEnabled:function() {
|
this.btn.enabled = this.btn_status
|
},
|
// --推荐标签
|
showRecommondIcon(bool,qian_type){
|
var self = this
|
this.recommondStatus = {
|
bool : bool,
|
qian_type : qian_type,
|
}
|
if(this.root_wnd == null) return;
|
if(bool == false && self.recommond_icon_sp == null) return;
|
if(!self.recommond_icon_sp){
|
self.recommond_icon_sp = Utils.createImage(self.root_wnd,null,-30,27.5,cc.v2(0.5,0.5),true,10,true)
|
self.recommond_lb = Utils.createLabel(18,new cc.Color(255,255,255),new cc.Color(10,15,15),-11.1,12.8,"",self.recommond_icon_sp.node,2, cc.v2(0.5,0.5))
|
self.recommond_lb.node.setRotation(-45)
|
this.recommond_icon_sp.node.setContentSize(74,72)
|
}
|
if(bool == true){
|
self.recommond_icon_sp.node.active = true;
|
qian_type = qian_type || 1
|
let str
|
let res
|
if(qian_type == 1){
|
str = Utils.TI18N("推荐")
|
res = PathTool.getUIIconPath("common","common_30016") //--紫色
|
self.recommond_lb.node.getComponent(cc.LabelOutline).color.fromHEX("#5C1B77") //= new cc.Color(0x5c,0x1b,0x77)
|
}else if(qian_type == 2){
|
str = Utils.TI18N("已领悟")
|
res = PathTool.getUIIconPath("common","common_30013") //--红色
|
self.recommond_lb.node.getComponent(cc.LabelOutline).color.fromHEX("#8E2B00")
|
// }elseif qian_type ==3 then
|
// str = Utils.TI18N("神器")
|
// res = PathTool.getUIIconPath("common","common_90015") --位置不同的红色
|
// self.recommond_icon:setPosition(34,89)
|
// self.recommond_label:setPosition(29,25)
|
// self.recommond_label:enableOutline(cc.c4b(0x95,0x0f,0x00,0xff), 2)
|
// elseif qian_type == 4 then
|
// str = Utils.TI18N("觉")
|
// res = PathTool.getUIIconPath("common","common_90015")--位置不同的红色
|
// self.recommond_icon:setPosition(34,89)
|
// self.recommond_label:setPosition(29,25)
|
// self.recommond_label:enableOutline(cc.c4b(0x95,0x0f,0x00,0xff), 2)
|
}else if(qian_type == 5){
|
str = Utils.TI18N("可领悟")
|
res = PathTool.getUIIconPath("common","common_30015") //--蓝色
|
self.recommond_lb.node.getComponent(cc.LabelOutline).color.fromHEX("#0055A6")
|
}else{
|
// --无效类型 自行打印
|
self.recommond_icon.active = false;
|
}
|
this.loadRes(res,function(SpriteFrame){
|
this.recommond_icon_sp.spriteFrame = SpriteFrame
|
}.bind(this))
|
self.recommond_lb.string = str;
|
}else{
|
self.recommond_icon_sp.node.active = false;
|
}
|
},
|
//显示下方的名字
|
showName(bool,name,pos,fontSize, is_bg){
|
this.bottomName = {
|
bool:bool,
|
name:name,
|
pos:pos,
|
fontSize:fontSize,
|
is_bg:is_bg
|
}
|
if(this.root_wnd == null)return
|
var self = this;
|
if(bool == false && !self.name) return;
|
if(!self.name){
|
if(is_bg && self.name_bg == null){
|
let res = PathTool.getUIIconPath("common","common_2028")
|
self.name_bg = Utils.createImage(self.root_wnd, null , 0,-75, cc.v2(0.5,0.5), true, 0, true)
|
self.name_bg.node.setContentSize(108,30)
|
this.loadRes(res,function(SpriteFrame){
|
this.name_bg.spriteFrame = SpriteFrame
|
}.bind(this))
|
}
|
fontSize = fontSize || 24
|
self.name = Utils.createLabel(fontSize,new cc.Color(118,69,25),null,0,-75,"",self.root_wnd,1, cc.v2(0.5,0.5))
|
}
|
name = name || ""
|
self.name.string = name;
|
self.name.node.active = bool;
|
if(pos){
|
self.name.node.setPosition(pos)
|
}
|
},
|
// --desc:设置选中状态
|
setSelected(status){
|
var self = this
|
if(self.root_wnd == null || !self.select_bg && status == false) return
|
|
if(!self.select_bg){
|
let res= PathTool.getSelectBg()
|
self.select_bg = Utils.createImage(self.root_wnd, null , 0,0, cc.v2(0.5,0.5), true,null,true)
|
this.loadRes(res,function(SpriteFrame){
|
self.select_bg.spriteFrame = SpriteFrame
|
}.bind(this))
|
self.select_bg.node.setContentSize(self.root_wnd.getContentSize())
|
}
|
self.select_bg.node.active = status;
|
},
|
|
|
});
|