源战役客户端
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.
 
 
 
 
 

185 lines
5.1 KiB

FullWindowComponent = FullWindowComponent or BaseClass(BaseComponent)
local FullWindowComponent = FullWindowComponent
--title 窗口名字
--tabbar_list 标签名字数组
--tabbar_asset 图片的预设资源
--select_callback 选择的回调函数
--close_win_callback 关闭窗口的回调函数
--background_wnd 窗口的background_wnd属性
--show_anim 标签按钮是否移动显示
--hide_coin_add 是否隐藏金币栏
--ShowRoleLevelItem方法 显示人物等级
--HideCoinAddByType方法 是否隐藏某种金币类型
function FullWindowComponent:__init(parent,title,tabbar_asset,tabbar_list,select_callback,close_win_callback,background_wnd,show_anim,hide_coin_add)
self:InitData(title,tabbar_asset,tabbar_list,select_callback,close_win_callback,background_wnd,show_anim,hide_coin_add)
self:CreateGameObject(UIType.FullWindowComponent)
end
function FullWindowComponent:InitData(title,tabbar_asset,tabbar_list,select_callback,close_win_callback,background_wnd,show_anim,hide_coin_add)
self.curr_tabBtn_index = 0
self.tabbar_item_list = {}
self.tabbar_prefab = nil
self.title = title
self.tabbar_asset = tabbar_asset
self.tabbar_list = tabbar_list or {}
self.select_callback = select_callback
self.close_win_callback = close_win_callback
self.background_wnd = background_wnd
self.show_anim = show_anim
self.hide_coin_add = hide_coin_add
end
--根据类型隐藏金币/红钻/彩钻
function FullWindowComponent:ShowRoleLevelItem(level,turn,need_lv,alignment_type,add_str,font_color,font_size,front_str)
if self.RoleLevelItem == nil then
self.RoleLevelItem = RoleLevelItem.New(self.transform)
self.RoleLevelItem:SetOrignPos(co.TableXY(-275, 334))
end
self.RoleLevelItem:SetData(level,turn,need_lv,alignment_type,add_str,font_color,font_size,front_str)
end
--根据类型隐藏金币/红钻/彩钻
function FullWindowComponent:HideCoinAddByType( type, bool )
if self.coinAddBar then
self.coinAddBar:ShowByType(type, bool)
end
end
function FullWindowComponent:LoadSuccess()
self.win_transform = self.GetChild("Window")
self.win_title = self:GetChild("Window/windowTitleCon/windowTitleText"):GetComponent("Text")
self.subtitle = self:GetChild("Window/subtitle"):GetComponent("Text")
self.win_close_btn = self:GetChild("Window/windowCloseBtn").gameObject
self.mScroll = self:GetChild("ScrollView")
self.mContent = self:GetChild("ScrollView/Viewport/Content")
self.cdn_image = self:GetChild("Window"):GetComponent("Image")
if not self.hide_coin_add then
self.coinAddBar = CoinAddBar.New(self.transform)
self.coinAddBar_transform = self.coinAddBar.transform
end
lua_resM:setOutsideImageSprite(self, self.cdn_image, GameResPath.GetJpgImage("bag_bg.jpg"), false)
self:InitEvent()
self:LayoutUI()
self:LoadTabbarPrefab()
end
--在父窗口调用
function FullWindowComponent:__delete()
self.tabbar_prefab = nil
self.curr_tabBtn_index = 0
for i,item in pairs(self.tabbar_item_list) do
item:DeleteMe()
end
self.tabbar_item_list = {}
if self.coinAddBar then
self.coinAddBar:DeleteMe()
self.coinAddBar = nil
end
if self.RoleLevelItem then
self.RoleLevelItem:DeleteMe()
self.RoleLevelItem = nil
end
end
function FullWindowComponent:SetTitle( name )
self.title = name
self.win_title.text = self.title
end
function FullWindowComponent:SetSubtitle(name)
self.subtitle.text = name
end
function FullWindowComponent:LayoutUI()
self.win_title.text = self.title
if self.coinAddBar then
self.coinAddBar:SetImageBg(false)
self.coinAddBar_transform.anchoredPosition = Vector3(202,334)
end
if self.background_wnd then
local index = self.background_wnd.transform:GetSiblingIndex()
self.transform:SetSiblingIndex(index + 1)
else
self.transform:SetAsFirstSibling()
end
end
function FullWindowComponent:LoadTabbarPrefab()
local name = nil
local item = nil
local len = #self.tabbar_list
for index,vo in ipairs(self.tabbar_list) do
item = self.tabbar_item_list[index]
if item == nil then
item = FullTabButton.New(self.mContent)
self.tabbar_item_list[index] = item
end
item:SetVisible(true)
item:SetData(index,self.tabbar_asset,vo,self.select_callback,self.show_anim)
end
self.mContent.sizeDelta = Vector2(144, len * 100)
for i=#self.tabbar_list + 1,#self.tabbar_item_list do
self.tabbar_item_list[i]:SetVisible(false)
end
end
function FullWindowComponent:InitEvent()
local function onCloseBtnHandler(target)
if self.close_win_callback ~= nil then
self.close_win_callback()
end
end
AddClickEvent(self.win_close_btn,onCloseBtnHandler,1)
end
function FullWindowComponent:SetTabBarIndex(index)
if self.curr_tabBtn_index == index then return end
------------这是tabbar按钮样式------------------------
local tabbar = self.tabbar_item_list[self.curr_tabBtn_index]
if tabbar then
tabbar:SetSelect(false)
end
self.curr_tabBtn_index = index
tabbar = self.tabbar_item_list[self.curr_tabBtn_index]
if tabbar then
tabbar:SetSelect(true)
end
end
function FullWindowComponent:GetCurrentSelectIndex()
return self.curr_tabBtn_index
end
function FullWindowComponent:ShowRedPoint(index,bool)
local tabbar = self.tabbar_item_list[index]
if tabbar then
tabbar:ShowRedPoint(bool)
end
end