源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

97 linhas
3.0 KiB

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