源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

129 lines
3.1 KiB

FullTabButton = FullTabButton or BaseClass(BaseItem)
local FullTabButton = FullTabButton
function FullTabButton:__init(parent)
self.base_file = "uiComponent"
self.layout_file = "FullTabButton"
self.index = 0
self.name = ""
self.tabbar_asset = ""
self.dark_res = ""
self.light_res = ""
self:Load()
self.is_selected = -1
self.show_red_dot = -1
end
function FullTabButton:__delete()
if self.timer_id then
TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_id)
self.timer_id = nil
end
if self.tween_id then
TweenLite.Stop(self.tween_id)
self.tween_id = nil
end
end
function FullTabButton:Load_callback()
self.select_img = self:GetChild("Select").gameObject
self.btn_img = self:GetChild("Icon"):GetComponent("Image")
self.redPoint = self:GetChild("Dot").gameObject
self.line = self:GetChild("Line").gameObject
self:InitEvent()
if self.need_refreshData then
self:SetData(self.index,self.tabbar_asset,self.data,self.callback,self.show_anim)
end
end
function FullTabButton:SetData(index,tabbar_asset,data,callback,show_anim)
self.index = index
self.tabbar_asset = tabbar_asset
self.data = data
self.callback = callback
self.show_anim = show_anim
self.name = data.name or ""
self.light_res = data.light_res or ""
self.dark_res = data.dark_res or ""
if self.is_loaded then
self.index = index
if self.dark_res ~= "" then
lua_resM:setImageSprite(self,self.btn_img,self.tabbar_asset,self.dark_res,true)
end
if self.is_selected ~= -1 then
self:SetSelect(self.is_selected)
end
if self.show_red_dot ~= -1 then
self:ShowRedPoint(self.show_red_dot)
end
if show_anim then
self.transform.anchoredPosition = Vector2(-150, (self.index - 1) * -100 - 65)
local function delay_func( ... )
self.tween_id = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSX, 0, 0.2, nil)
end
self.timer_id = setTimeout(delay_func, 0.1 * self.index)
else
self.transform.anchoredPosition = Vector2(0, (self.index - 1) * -100 - 65)
end
else
self.need_refreshData = true
end
end
function FullTabButton:SetSelect(bool)
bool = bool == nil and -1 or bool
if self.is_loaded then
if bool ~= -1 then
if bool then
self.line:SetActive(false)
self.select_img:SetActive(true)
if self.light_res ~= "" then
lua_resM:setImageSprite(self,self.btn_img,self.tabbar_asset,self.light_res,true)
end
else
self.line:SetActive(true)
self.select_img:SetActive(false)
if self.dark_res ~= "" then
lua_resM:setImageSprite(self,self.btn_img,self.tabbar_asset,self.dark_res,true)
end
end
self.is_selected = -1
end
else
self.is_selected = bool
end
end
function FullTabButton:InitEvent()
local function onTabBtnHandler(target)
if self.callback ~= nil then
self:ClickCall()
end
end
AddClickEvent(self.gameObject,onTabBtnHandler,2)
end
function FullTabButton:ShowRedPoint(bool)
bool = bool == nil and -1 or bool
if self.is_loaded then
if bool ~= -1 then
self.redPoint:SetActive(bool)
self.show_red_dot = -1
end
else
self.show_red_dot = bool
end
end
function FullTabButton:ClickCall( )
self.callback(self.index)
end