PsionicAdvanceBreakTabItem = PsionicAdvanceBreakTabItem or BaseClass(BaseItem)
|
|
local PsionicAdvanceBreakTabItem = PsionicAdvanceBreakTabItem
|
|
|
|
function PsionicAdvanceBreakTabItem:__init(parent_wnd,prefab_asset,layer_name)
|
|
self.base_file = "psionic"
|
|
self.layout_file = "PsionicAdvanceBreakTabItem"
|
|
self.parent_wnd = parent_wnd
|
|
self.layer_name = layer_name
|
|
|
|
self.model = PsionicModel:getInstance()
|
|
self.tab_icon_data = {
|
|
[1] = {content = "全部", },
|
|
[2] = {content = "圣书", },
|
|
[3] = {content = "圣球", },
|
|
[4] = {content = "圣杯", },
|
|
[5] = {content = "圣冠", },
|
|
}
|
|
self.is_selected = false
|
|
self:Load()
|
|
end
|
|
|
|
function PsionicAdvanceBreakTabItem:Load_callback()
|
|
local nodes = {
|
|
"selected:obj",
|
|
"bg/tab_red:obj",
|
|
"bg:obj:img", "bg/tab_name:tmp", "bg/tab_icon:img",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function PsionicAdvanceBreakTabItem:AddEvents( )
|
|
local function click_event(target)
|
|
if target == self.bg_obj then
|
|
if self.click_callback then
|
|
self.click_callback(self.index)
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.bg_obj, click_event)
|
|
|
|
local function update_break_tab_red(tab_id)
|
|
if not tab_id or tab_id == PsionicConst.TabId.PBreak then
|
|
self:UpdateBreakTabRed()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PsionicConst.UPDATE_RED_BY_TABID, update_break_tab_red)
|
|
end
|
|
|
|
-- index:这里需要特殊处理
|
|
function PsionicAdvanceBreakTabItem:SetData(index, click_callback)
|
|
self.index = index
|
|
self.click_callback = click_callback
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function PsionicAdvanceBreakTabItem:UpdateView( )
|
|
-- 按钮底图
|
|
-- lua_resM:setImageSprite(self, self.bg_img, "psionic_asset", self.index == 1 and "ps_break_tab_bg1" or "ps_break_tab_bg2")
|
|
-- 按钮图标
|
|
lua_resM:setImageSprite(self, self.tab_icon_img, "psionic_asset", "ps_break_tab_icon" .. (self.index - 1), true)
|
|
self.tab_name_tmp.text = self.tab_icon_data[self.index].content
|
|
self:SetSelected(self.is_selected)
|
|
self:UpdateBreakTabRed()
|
|
end
|
|
|
|
-- 更新页签红点
|
|
function PsionicAdvanceBreakTabItem:UpdateBreakTabRed( )
|
|
if self.index > 1 then -- 第一个tab没有红点
|
|
local bool = self.model:GetPsionicBreakSlotRed(self.index + 2) -- 此处需要+2映射
|
|
self.tab_red_obj:SetActive(bool)
|
|
else
|
|
self.tab_red_obj:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function PsionicAdvanceBreakTabItem:SetSelected(bool)
|
|
self.is_selected = bool
|
|
if self.is_loaded then
|
|
lua_resM:setImageSprite(self, self.bg_img, "psionic_asset", self.is_selected and "ps_break_tab_bg1" or "ps_break_tab_bg2", true)
|
|
-- self.selected_obj:SetActive(self.is_selected)
|
|
end
|
|
end
|
|
|
|
function PsionicAdvanceBreakTabItem:__delete( )
|
|
|
|
end
|