|
|
|
UITabWindow = UITabWindow or BaseClass(BaseComponent)
|
|
local UITabWindow = UITabWindow
|
|
|
|
--窗口类型
|
|
UITabWindow.SizeLarge = 1 -- 全屏窗口,有tab
|
|
UITabWindow.SizeSmall = 2 -- 非全屏窗口,有tab
|
|
UITabWindow.SizeLargeNoTab = 3 -- 全屏窗口,没有tab
|
|
UITabWindow.SizeSmallNoTab = 4 -- --非全屏二级窗口,没有tab
|
|
UITabWindow.SizeSmallHall = 5 -- 伪全屏窗口,带tab 但是tab不带头像 具体参考副本大厅
|
|
UITabWindow.SizeSmallSP = 6 -- 特殊的二级带tab界面 参考送礼记录界面
|
|
UITabWindow.SizeSmallHallNoTab = 7 -- 伪全屏窗口,不带tab 具体参考多人副本
|
|
UITabWindow.SizeSmallFolderNoTab = 8 -- 非全屏二级窗口,没有tab,背景底样式类似于文件夹,参考查看玩家界面
|
|
UITabWindow.SizeSmallActHall = 9 -- 伪全屏活动窗口,带tab 但是tab不带头像 具体参考充值
|
|
|
|
|
|
UITabWindow.DesignWidth = 1560
|
|
UITabWindow.DesignHeight = 720
|
|
UITabWindow.ShowWidth = math.min(UITabWindow.DesignWidth, ScreenWidth)
|
|
UITabWindow.ShowHeigth = math.min(UITabWindow.DesignHeight, ScreenHeight)
|
|
|
|
--窗口类型参数
|
|
UITabWindow.Parms = {
|
|
--全屏窗口,带tab
|
|
[1] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 1,
|
|
},
|
|
--非全屏窗口,有tab
|
|
[2] = {
|
|
win_width = 1067,
|
|
win_height = 557,
|
|
win_name = UIType.WindowNew2,--背景资源默认是WindowNew2_bg
|
|
position = Vector3(0,0),
|
|
tabbar_style = 2,
|
|
},
|
|
--全屏窗口,没有tab
|
|
[3] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 0,
|
|
},
|
|
--非全屏二级窗口,没有tab
|
|
[4] = {
|
|
win_width = 1067,
|
|
win_height = 557,
|
|
win_name = UIType.WindowNew2,--背景资源默认是WindowNew2_bg
|
|
position = Vector3(0,0),
|
|
tabbar_style = 0,
|
|
},
|
|
--伪全屏窗口,带tab 但是tab不带头像 具体参考副本大厅
|
|
[5] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew4,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 3,
|
|
},
|
|
--非全屏窗口,有tab
|
|
[6] = {
|
|
win_width = 1067,
|
|
win_height = 557,
|
|
win_name = UIType.WindowNew6,
|
|
position = Vector3(2.5,-6),
|
|
tabbar_style = 4,
|
|
},
|
|
--伪全屏窗口,不带tab 具体参考多人副本
|
|
[7] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew5,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 0,
|
|
},
|
|
-- 非全屏二级窗口,没有tab,背景底样式类似于文件夹,参考查看玩家界面
|
|
[8] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew7,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 0,
|
|
},
|
|
--伪全屏活动窗口,带tab 但是tab不带头像 具体参考充值
|
|
[9] = {
|
|
win_width = UITabWindow.ShowWidth,
|
|
win_height = UITabWindow.ShowHeigth,
|
|
win_name = UIType.WindowNew8,
|
|
position = Vector3(0,0,0),
|
|
tabbar_style = 8,
|
|
},
|
|
}
|
|
|
|
function UITabWindow:__init(parent,tabbar_list,select_callback,close_win_callback,background_wnd,attach_node,view_style, bg_name,ues_new_tab, need_show_money,extra_arg_table)
|
|
-------------------------
|
|
self._is_uitabwindow = true
|
|
-------------------------
|
|
self:InitData(tabbar_list,select_callback,close_win_callback,background_wnd,attach_node,view_style, bg_name,ues_new_tab,need_show_money,extra_arg_table)
|
|
self.parms = UITabWindow.Parms[view_style] or UITabWindow.Parms[1]
|
|
self.tabbar_style = ues_new_tab or self.parms.tabbar_style
|
|
self:CreateGameObject(self.parms.win_name)
|
|
|
|
local function on_back_change( )
|
|
if IsNull(self.transform) then
|
|
return
|
|
end
|
|
if BaseView.LastTabIndex and BaseView.LastTabIndex > 0 then
|
|
self:SetTabBarIndex(BaseView.LastTabIndex)
|
|
BaseView.LastTabIndex = 0
|
|
end
|
|
end
|
|
self.key_back_change_id = GlobalEventSystem:Bind(EventName.KEY_BACK_CHANGE, on_back_change)
|
|
end
|
|
|
|
function UITabWindow:InitData(tabbar_list,select_callback,close_win_callback,background_wnd,attach_node,view_style, bg_name,ues_new_tab, need_show_money, extra_arg_table)
|
|
self.curr_tabBtn_index = 0
|
|
self.tabbar_item_list = {}
|
|
self.tabbar_prefab = nil
|
|
self.do_open_ani = false
|
|
self.old_ani_top_pos = false
|
|
self.old_ani_right_pos = false
|
|
self.back_target_view = false
|
|
|
|
self.tabbar_list = self:CheckTabbarOpen(tabbar_list)
|
|
self.select_callback = select_callback
|
|
self.close_win_callback = close_win_callback
|
|
self.background_wnd = background_wnd
|
|
self.attach_node = attach_node
|
|
self.bg_name = bg_name
|
|
self.view_style = view_style
|
|
self.tabbar_style = ues_new_tab
|
|
self.need_show_money = need_show_money
|
|
self.extra_arg_table = extra_arg_table
|
|
end
|
|
|
|
function UITabWindow:LoadSuccess()
|
|
self.win_transform = self.transform
|
|
if self.view_style == UITabWindow.SizeLarge or self.view_style == UITabWindow.SizeLargeNoTab then
|
|
self.win_bg_obj = self.transform.gameObject
|
|
-- self.win_bg = self.win_transform:GetComponent("RawImage")
|
|
self.win_bg_tf = self:GetChild("windowBg")
|
|
self.win_bg = self:GetChild("windowBg"):GetComponent("RawImage")
|
|
self.win_bg_mask = self:GetChild("windowBgMask")
|
|
self.win_close_btn = self:GetChild("di_head/windowCloseBtn").gameObject
|
|
self.win_tab_scroll = self:GetChild("di_right/windowTabScroll")
|
|
self.win_tab_cont_scroll = self:GetChild("di_right/windowTabScroll/Viewport/windowTabCont")
|
|
self.win_tab_cont = self:GetChild("di_right/windowTabCont")
|
|
self.win_title = self:GetChild("di_head/windowTitleImg")
|
|
self.di_right_obj = self:GetChild("di_right").gameObject
|
|
self.di_head_trans = self:GetChild("di_head")
|
|
self.di_right_trans = self:GetChild("di_right")
|
|
self.con_money = self:GetChild("di_head/con_money")
|
|
self.lb_title_txt = self:GetChild("di_head/lb_title"):GetComponent(typeof(TMPro.TextMeshProUGUI))
|
|
|
|
if self.win_title then
|
|
self.win_title_bg = self.win_title:GetComponent("Image")
|
|
end
|
|
|
|
--全屏界面排行榜页签位置特殊处理
|
|
if self.view_style == UITabWindow.SizeLarge then
|
|
if self.tabbar_style == 6 then--排行榜使用样式6的侧边tab,并且位置要偏下
|
|
SetAnchoredPositionY(self.win_tab_scroll, -106)
|
|
SetAnchoredPositionY(self.win_tab_cont, -117)
|
|
else
|
|
SetAnchoredPositionY(self.win_tab_scroll, -60.5)
|
|
SetAnchoredPositionY(self.win_tab_cont, -71.5)
|
|
end
|
|
end
|
|
|
|
elseif self.view_style == UITabWindow.SizeSmall
|
|
or self.view_style == UITabWindow.SizeSmallNoTab
|
|
or self.view_style == UITabWindow.SizeSmallHall
|
|
or self.view_style == UITabWindow.SizeSmallHallNoTab
|
|
or self.view_style == UITabWindow.SizeSmallSP
|
|
or self.view_style == UITabWindow.SizeSmallFolderNoTab
|
|
or self.view_style == UITabWindow.SizeSmallActHall
|
|
then
|
|
self.win_bg_obj = self.transform.gameObject
|
|
self.win_bg_tf = self:GetChild("windowBg")
|
|
self.win_bg = self:GetChild("windowBg"):GetComponent("RawImage")
|
|
self.win_close_btn = self:GetChild("di_head/windowCloseBtn").gameObject
|
|
self.win_title = self:GetChild("di_head/windowTitleImg")
|
|
self.win_title_obj = self:GetChild("di_head/windowTitleImg").gameObject
|
|
self.win_tab_scroll = self:GetChild("di_right/windowTabScroll")
|
|
self.win_tab_cont_scroll = self:GetChild("di_right/windowTabScroll/Viewport/windowTabCont")
|
|
self.win_tab_cont = self:GetChild("di_right/windowTabCont")
|
|
self.di_right_obj = self:GetChild("di_right").gameObject
|
|
-- self.title_name_obj = self:GetChild("di_head/title_name").gameObject
|
|
-- self.title_name_tmp = self:GetChild("di_head/title_name"):GetComponent("Text")
|
|
self.di_head_trans = self:GetChild("di_head")
|
|
self.di_right_trans = self:GetChild("di_right")
|
|
self.con_money = self:GetChild("di_head/con_money")
|
|
|
|
self.nodes = {
|
|
"di_head/title_name:tmp:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
if self.win_title then
|
|
self.win_title_bg = self.win_title:GetComponent("Image")
|
|
end
|
|
if self.view_style == UITabWindow.SizeSmallHall or self.view_style == UITabWindow.SizeSmallHallNoTab then
|
|
self.win_bg_left_raw = self:GetChild("bgLeft"):GetComponent("RawImage")
|
|
self.win_bg_right_raw = self:GetChild("bgRight"):GetComponent("RawImage")
|
|
lua_resM:setOutsideRawImage(self, self.win_bg_left_raw, GameResPath.GetViewBigBg("default_bg_6_left"), true)
|
|
lua_resM:setOutsideRawImage(self, self.win_bg_right_raw, GameResPath.GetViewBigBg("default_bg_6_right"), true)
|
|
elseif self.view_style == UITabWindow.SizeSmallActHall then
|
|
self.win_bg_left_raw = self:GetChild("bgLeft"):GetComponent("RawImage")
|
|
self.win_bg_right_raw = self:GetChild("bgRight"):GetComponent("RawImage")
|
|
lua_resM:setOutsideRawImage(self, self.win_bg_left_raw, GameResPath.GetViewBigBg("default_bg_7_left"), true)
|
|
lua_resM:setOutsideRawImage(self, self.win_bg_right_raw, GameResPath.GetViewBigBg("default_bg_7_right"), true)
|
|
self.di_right_img = self:GetChild("di_right"):GetComponent("Image")
|
|
lua_resM:setOutsideImageSprite(self, self.di_right_img, GameResPath.GetViewBigBg("ui_tab_bg8"), false)
|
|
elseif self.view_style == UITabWindow.SizeSmallFolderNoTab then
|
|
-- self.win_bg_base_raw = self:GetChild("windowBg_base"):GetComponent("RawImage")
|
|
-- self.win_bg_base_trm = self:GetChild("windowBg_base")
|
|
-- lua_resM:setOutsideRawImage(self, self.win_bg_base_raw, GameResPath.GetViewBigBg("folder_like_view_bg_no_tab"), false)
|
|
end
|
|
end
|
|
|
|
|
|
self:DoOpenViewAnimation()
|
|
|
|
--[[已废弃,设置背景统一使用SetBackgroundRes
|
|
--设置背景
|
|
if self.bg_name and self.win_bg and (not ClientConfig.alpha_mode or not ClientConfig.view_style_ui or ClientConfig.view_style_ui == "") then
|
|
lua_resM:setOutsideRawImage(self, self.win_bg, GameResPath.GetViewBigBg(self.bg_name))
|
|
end
|
|
]]
|
|
|
|
self:InitEvent()
|
|
self:LayoutUI()
|
|
self:LoadTabbarPrefab()
|
|
self:CreateMoney()
|
|
|
|
if ClientConfig.alpha_mode then
|
|
if ClientConfig.view_style_ui and ClientConfig.view_style_ui ~= "" then
|
|
self:InitAlphaState()
|
|
end
|
|
end
|
|
end
|
|
|
|
--窗口类型
|
|
function UITabWindow:CreateMoney( )
|
|
--除了13579 其他是二级界面都不需要UIMoneyView--2021.3.1鑫爷的需求
|
|
if self.view_style == UITabWindow.SizeLarge--1
|
|
or self.view_style == UITabWindow.SizeLargeNoTab--3
|
|
or self.view_style == UITabWindow.SizeSmallHall--5
|
|
or self.view_style == UITabWindow.SizeSmallHallNoTab--7
|
|
or self.view_style == UITabWindow.SizeSmallActHall--9
|
|
then
|
|
else
|
|
return
|
|
end
|
|
-- --显示金钱
|
|
if self.need_show_money and self.con_money and not ClientConfig.alpha_mode then
|
|
if not self.money_view then
|
|
self.money_view = UIMoneyView.New(self.con_money)
|
|
end
|
|
self.money_view:SetPosition(0,0)
|
|
self.money_view:SetData()
|
|
if self.money_view_add_res then
|
|
self.money_view:ChangeAddBtnRes(self.money_view_add_res)
|
|
end
|
|
--小窗口只显示最多两个货币
|
|
if self.view_style == UITabWindow.SizeSmall or self.view_style == UITabWindow.SizeSmallNoTab
|
|
or self.view_style == UITabWindow.SizeSmallHall
|
|
or self.view_style == UITabWindow.SizeSmallSP
|
|
or self.view_style == UITabWindow.SizeSmallHallNoTab
|
|
or self.view_style == UITabWindow.SizeSmallFolderNoTab
|
|
or self.view_style == UITabWindow.SizeSmallActHall
|
|
then
|
|
self.money_view:ChangeShowFlag("smallWindow")
|
|
end
|
|
end
|
|
end
|
|
|
|
--切换背景
|
|
function UITabWindow:SetBackgroundRes(res)
|
|
local load_bg_callback = function ()
|
|
self.win_bg_obj:SetActive(true)
|
|
if ClientConfig.is_use_model_render then
|
|
self.win_bg.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
if res and self.win_bg and (not ClientConfig.alpha_mode or not ClientConfig.view_style_ui or ClientConfig.view_style_ui == "") then
|
|
local is_auto_size = false
|
|
lua_resM:setOutsideRawImage(self, self.win_bg, GameResPath.GetViewBigBg(res), is_auto_size, load_bg_callback)
|
|
if ClientConfig.is_use_model_render then
|
|
if not self.backward_bg then
|
|
local back_canvae = GameObject.Find("root").transform:Find("BackCanvas")
|
|
print("back_canvae " , back_canvae)
|
|
self.backward_bg = back_canvae.transform:Find("Bg/bg_contain/bg"):GetComponent("RawImage")
|
|
end
|
|
self.backward_bg.gameObject:SetActive(true)
|
|
lua_resM:setOutsideRawImage(self, self.backward_bg, GameResPath.GetViewBigBg(res))
|
|
end
|
|
end
|
|
end
|
|
|
|
--切换标题
|
|
function UITabWindow:SetTitleRes(ab_name, res_name)
|
|
if self.win_title_bg and ab_name and res_name then
|
|
if self.view_style == UITabWindow.SizeLarge or self.view_style == UITabWindow.SizeLargeNoTab then
|
|
--不用图片标题
|
|
else
|
|
if self.title_name_obj then
|
|
self.title_name_obj:SetActive(false)
|
|
end
|
|
lua_resM:setImageSprite(self, self.win_title_bg, ab_name, res_name, true)
|
|
end
|
|
end
|
|
end
|
|
|
|
function UITabWindow:SetTitleText( str )
|
|
if str then
|
|
if self.win_title_obj then
|
|
self.win_title_obj:SetActive(false)
|
|
end
|
|
if self.lb_title_txt then
|
|
self.lb_title_txt.text = str
|
|
end
|
|
if self.title_name_tmp then
|
|
self.title_name_tmp.text = str
|
|
end
|
|
end
|
|
end
|
|
|
|
--在父窗口调用
|
|
function UITabWindow:__delete()
|
|
|
|
if self.back_target_view then
|
|
LuaViewManager:getInstance():HideBackData(self.back_target_view)
|
|
self.back_target_view = false
|
|
end
|
|
|
|
if self.orientation_change_id then
|
|
GlobalEventSystem:UnBind(self.orientation_change_id)
|
|
self.orientation_change_id = nil
|
|
end
|
|
if self.key_back_change_id then
|
|
GlobalEventSystem:UnBind(self.key_back_change_id)
|
|
self.key_back_change_id = nil
|
|
end
|
|
BaseView.LastTabIndex = 0
|
|
self.temp_cur_index = false
|
|
self.tabbar_prefab = nil
|
|
self.curr_tabBtn_index = 0
|
|
if ClientConfig.is_use_model_render then
|
|
if self.backward_bg then
|
|
self.backward_bg.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
|
|
|
|
if self.money_view then
|
|
self.money_view:DeleteMe()
|
|
self.money_view = nil
|
|
end
|
|
|
|
if self.tab_view then
|
|
self.tab_view:DeleteMe()
|
|
self.tab_view = nil
|
|
end
|
|
|
|
if self.action_nodes then
|
|
for k,v in pairs(self.action_nodes) do
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(v)
|
|
end
|
|
self.action_nodes = nil
|
|
end
|
|
self.do_open_ani = false
|
|
end
|
|
|
|
function UITabWindow:LayoutUI()
|
|
self.win_transform.anchorMin = Vector2(0.5,0.5)
|
|
self.win_transform.anchorMax = Vector2(0.5,0.5)
|
|
self.win_transform.localPosition = Vector3(0,0,0)
|
|
self.win_transform.sizeDelta = Vector2(self.parms.win_width,self.parms.win_height)
|
|
|
|
if self.view_style == UITabWindow.SizeLarge or self.view_style == UITabWindow.SizeLargeNoTab then
|
|
self:SetIpxMode()
|
|
else
|
|
--非全屏界面,有偏移
|
|
if self.parms.position then
|
|
self.transform.localPosition = self.parms.position
|
|
end
|
|
end
|
|
|
|
if self.background_wnd then
|
|
local index = self.background_wnd.transform:GetSiblingIndex()
|
|
self.transform:SetSiblingIndex(index + 1)
|
|
else
|
|
self.transform:SetAsFirstSibling()
|
|
end
|
|
|
|
-- self.win_title_con.sizeDelta = Vector2(self.title_width,self.title_height)
|
|
|
|
if self.attach_node then
|
|
self.attach_node:SetParent(self.win_transform)
|
|
self.attach_node:SetAsFirstSibling()
|
|
end
|
|
|
|
self.win_bg_tf:SetAsFirstSibling()
|
|
if self.win_bg_base_trm then--参考副本主界面
|
|
self.win_bg_base_trm:SetAsFirstSibling()
|
|
end
|
|
end
|
|
|
|
function UITabWindow:SetIpxMode( )
|
|
local temp_win_width = self.parms.win_width
|
|
local temp_win_off_x, temp_mask_off_x = 0,0
|
|
local need_change = false
|
|
|
|
--全屏界面要适配刘海
|
|
if self.view_style == UITabWindow.SizeLarge or self.view_style == UITabWindow.SizeLargeNoTab then
|
|
if ClientConfig.iphone_x_model then
|
|
if ClientConfig.iphone_x_offset_left > 0 then
|
|
temp_win_width = temp_win_width - ClientConfig.iphone_x_offset_left
|
|
temp_win_off_x = ClientConfig.iphone_x_offset_left/2
|
|
temp_mask_off_x = 0
|
|
need_change = true
|
|
end
|
|
if ClientConfig.iphone_x_offset_right > 0 then
|
|
temp_win_width = temp_win_width - ClientConfig.iphone_x_offset_right
|
|
temp_win_off_x = temp_win_off_x-ClientConfig.iphone_x_offset_right/2
|
|
temp_mask_off_x = temp_win_width + 100 --100是遮罩本身的大小
|
|
need_change = true
|
|
end
|
|
end
|
|
SetSizeDeltaX(self.di_head_trans.transform, ScreenWidth - ClientConfig.iphone_x_offset_left - ClientConfig.iphone_x_offset_right)
|
|
SetAnchoredPosition( self.di_head_trans.transform, 0, ScreenHeight/2 )
|
|
end
|
|
|
|
if not need_change then
|
|
return
|
|
end
|
|
|
|
--窗口偏移
|
|
self.win_transform.localPosition = Vector3(temp_win_off_x+self.parms.position.x,self.parms.position.y,0)
|
|
self.win_transform.sizeDelta = Vector2(temp_win_width,self.parms.win_height)
|
|
--刘海遮罩偏移
|
|
-- if self.win_bg_mask and temp_win_off_x ~= 0 then
|
|
-- self.win_bg_mask.gameObject:SetActive(true)
|
|
-- self.win_bg_mask:SetAsLastSibling()
|
|
-- SetAnchoredPositionX(self.win_bg_mask, temp_mask_off_x)
|
|
-- end
|
|
end
|
|
|
|
function UITabWindow:LoadTabbarPrefab()
|
|
if not self.parms.tabbar_style or self.parms.tabbar_style == 0 then
|
|
self.di_right_obj:SetActive(false)
|
|
return
|
|
end
|
|
|
|
local function click_callback( index )
|
|
if self.temp_cur_index then
|
|
BaseView.LastTabIndex = self.temp_cur_index
|
|
end
|
|
self.select_callback(index)
|
|
self.temp_cur_index = index
|
|
end
|
|
|
|
local function set_linebg_size( w,h,con_h )--设置linebg大小 以及容器大小
|
|
SetSizeDeltaY(self.win_tab_cont_scroll.transform,con_h)
|
|
end
|
|
|
|
local len = TableSize(self.tabbar_list)
|
|
if not self.tab_view then
|
|
if len > 6 then--大于六个页签才给予滚动
|
|
self.tab_view = UITabBarView.New(self.win_tab_cont_scroll,nil,self.layer_name,self.view_style,true)
|
|
self.win_tab_cont.gameObject:SetActive(false)
|
|
else
|
|
self.tab_view = UITabBarView.New(self.win_tab_cont,nil,self.layer_name,self.view_style)
|
|
self.win_tab_scroll.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
self.tab_view:SetData(self.tabbar_list, click_callback, self.tabbar_style, len > 6 and set_linebg_size or nil, self.extra_arg_table)
|
|
end
|
|
|
|
function UITabWindow:InitEvent()
|
|
local function onCloseBtnHandler(target)
|
|
if self.close_win_callback ~= nil then
|
|
self.close_win_callback()
|
|
end
|
|
end
|
|
AddClickEvent(self.win_close_btn,onCloseBtnHandler,LuaSoundManager.SOUND_UI.NONE,true)
|
|
|
|
local function onOrientationChange( )
|
|
self:SetIpxMode()
|
|
end
|
|
if not self.orientation_change_id then
|
|
self.orientation_change_id = GlobalEventSystem:Bind(EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:SetTabBarIndex(index, force, ignore_call_back)
|
|
if self.tab_view and self.tab_view.SetTabBarIndex then
|
|
self.tab_view:SetTabBarIndex(index, force, ignore_call_back)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:GetTabBarBtn(index)
|
|
if self.tab_view and self.tab_view.GetTabbarBtn then
|
|
return self.tab_view:GetTabbarBtn(index, force)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:GetCurrentSelectIndex()
|
|
if self.tab_view and self.tab_view.GetCurrentSelectIndex then
|
|
return self.tab_view:GetCurrentSelectIndex()
|
|
end
|
|
end
|
|
|
|
function UITabWindow:ShowRedPoint(index,bool)
|
|
if self.tab_view and self.tab_view.ShowRedPoint then
|
|
self.tab_view:ShowRedPoint(index, bool)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:ShowRedPointWithNum(index, num, force_show)
|
|
-- print("Saber:UITabWindow [526] index, num, force_show: ",index, num, force_show)
|
|
if self.tab_view and self.tab_view.ShowRedPointWithNum then
|
|
self.tab_view:ShowRedPointWithNum(index, num, force_show)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:SetSpeacialImg(index, state)
|
|
if self.tab_view and self.tab_view.SetSpeacialImg then
|
|
self.tab_view:SetSpeacialImg(index, state)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:SetTextSize(font_size)
|
|
if self.tab_view and self.tab_view.SetTextSize then
|
|
self.tab_view:SetTextSize(font_size)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:CheckTabbarOpen( tabbar_list )
|
|
if not tabbar_list then return end
|
|
local result = {}
|
|
local open_status = true
|
|
for k,v in pairsByKeys(tabbar_list) do
|
|
open_status = true
|
|
if (not v.open_lv) and (not v.open_task) and (not v.open_day) and v.module_id and (v.sub_id or v.id) then
|
|
--不填开放条件的时候就走一下检测
|
|
open_status = GetModuleIsOpen( v.module_id,(v.sub_id or v.id),true )
|
|
elseif not MainUIModel:getInstance():GetFunOpenState(v.open_lv, v.open_task or 0) then
|
|
open_status = false
|
|
elseif v.open_day and v.open_day > ServerTimeModel:getInstance():GetOpenServerDay() then
|
|
open_status = false
|
|
end
|
|
if open_status then
|
|
table.insert( result, v )
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
|
|
function UITabWindow:RefeshTabbar(tabbar_list, switch_callback, tabbar_style, force)
|
|
self.tabbar_list = self:CheckTabbarOpen(tabbar_list or self.tabbar_list)
|
|
self.select_callback = switch_callback or self.select_callback
|
|
self.parms.tabbar_style = tabbar_style or self.parms.tabbar_style
|
|
if self.tab_view then
|
|
self.tab_view:RefreshTabData(self.tabbar_list, self.select_callback, self.parms.tabbar_style)
|
|
self:SetTabBarIndex(self:GetCurrentSelectIndex(),force)
|
|
-- self.tab_view:RefeshTabBar()
|
|
end
|
|
end
|
|
|
|
function UITabWindow:InitAlphaState( )
|
|
if self.win_tab_cont_scroll and self.win_tab_cont_scroll.gameObject then
|
|
self.win_tab_cont_scroll.gameObject:SetActive(false)
|
|
end
|
|
if self.win_tab_cont and self.win_tab_cont.gameObject then
|
|
self.win_tab_cont.gameObject:SetActive(false)
|
|
end
|
|
self.win_title_con = self:GetChild("windowTitleCon").gameObject
|
|
if self.win_title_con then
|
|
self.win_title_con:SetActive(false)
|
|
end
|
|
if self.win_title and self.win_title.gameObject then
|
|
self.win_title.gameObject:SetActive(false)
|
|
end
|
|
self.close_btn_img = self:GetChild("di_head/windowCloseBtn"):GetComponent("Image")
|
|
local btn_res_name, btn_pos, btn_size = AlphaModel:getInstance():GetCloseBtnStyle()
|
|
if self.close_btn_img then
|
|
lua_resM:setImageSprite(self, self.close_btn_img, "alpha_asset", btn_res_name, true)
|
|
end
|
|
if self.win_close_btn then
|
|
self.win_close_btn.transform.anchoredPosition = btn_pos
|
|
end
|
|
-- local bg_res_name, bg_pos, bg_size = AlphaModel:getInstance():GetWinBgStyle()
|
|
local style = ClientConfig.view_style_ui or 1
|
|
local alpha_bg_name = "alpha_win_bg_"..style
|
|
print("tanar - [ UITabWindow ] [297] ==> alpha_bg_name: ",alpha_bg_name)
|
|
lua_resM:setOutsideRawImage(self, self.win_bg, GameResPath.GetViewBigBg(alpha_bg_name), false)
|
|
-- print("tanar - [ UITabWindow ] [296] ==> bg_res_name: ",bg_res_name)
|
|
-- lua_resM:setRawImage(self,self.win_bg, "alpha_asset", bg_res_name)
|
|
if self.win_bg_obj then
|
|
self.win_bg_obj.transform.localPosition = Vector3(-25,-21,0)
|
|
self.win_bg_obj.transform.sizeDelta = Vector2(1155, 650)
|
|
local alpha_bg_size = AlphaModel:getInstance():GetBgSize()
|
|
if alpha_bg_size then
|
|
self.win_bg_obj.transform.sizeDelta = alpha_bg_size
|
|
end
|
|
end
|
|
if self.parent_transform then
|
|
local win_name = self.parent_transform.name or "UITabWindow"
|
|
local error_str = "Alpha record: Open Win " .. win_name
|
|
if GameError and GameError.Instance then
|
|
GameError.Instance:SendErrorMsg(error_str)
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function UITabWindow:DoOpenViewAnimation(force)
|
|
if self.parms.win_name ~= UIType.WindowNew or ClientConfig.tabwin_ani_mode == false then
|
|
return
|
|
end
|
|
|
|
if self.do_open_ani and not force then
|
|
return
|
|
end
|
|
self.do_open_ani = true
|
|
if self.di_head_trans then
|
|
self.old_ani_top_pos = self.old_ani_top_pos or self.di_head_trans.anchoredPosition
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.di_head_trans)
|
|
SetAnchoredPosition(self.di_head_trans, self.old_ani_top_pos.x, self.old_ani_top_pos.y + 74)
|
|
local moveActionTop = cc.MoveTo.createAnchoredType(1.5, self.di_head_trans.anchoredPosition.x, self.old_ani_top_pos.y)
|
|
moveActionTop = cc.EaseExponentialOut.New(moveActionTop)
|
|
self:AddAction(moveActionTop, self.di_head_trans)
|
|
end
|
|
|
|
if self.di_right_trans then
|
|
self.old_ani_right_pos = self.old_ani_right_pos or self.di_right_trans.anchoredPosition
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.di_right_trans)
|
|
SetAnchoredPosition(self.di_right_trans, self.old_ani_right_pos.x + 145, self.old_ani_right_pos.y)
|
|
local moveActionRight = cc.MoveTo.createAnchoredType(1.5, self.old_ani_right_pos.x, self.di_right_trans.anchoredPosition.y)
|
|
moveActionRight = cc.EaseExponentialOut.New(moveActionRight)
|
|
self:AddAction(moveActionRight, self.di_right_trans)
|
|
end
|
|
end
|
|
|
|
--自销毁动作
|
|
function UITabWindow:AddAction( action, node )
|
|
self.action_nodes = self.action_nodes or {}
|
|
self.action_nodes[node] = node
|
|
cc.ActionManager:getInstance():addAction(action, node)
|
|
end
|
|
|
|
--自销毁动作
|
|
function UITabWindow:SetUIBack(data)
|
|
if self.background_wnd then
|
|
self.background_wnd.gameObject:SetActive(false)
|
|
end
|
|
|
|
local target = data.target
|
|
local bg1 = data.bg1
|
|
local bg2 = data.bg2
|
|
local node_list = data.node_list
|
|
local back_camera_args = data.camera_args
|
|
|
|
if target == nil then
|
|
error(">>>>>>>>>>>>>需要传入tabwin所在的view")
|
|
end
|
|
|
|
if self.view_style == UITabWindow.SizeLarge then
|
|
local camera_args = LuaViewManager.CameraArgs.DepthZero
|
|
local bg_list = target.model_activity_bg and {} or -- 显示背景模型的情况不展示图片背景
|
|
{
|
|
[1] = {res = bg1, args = args1 },
|
|
}
|
|
LuaViewManager:getInstance():ShowBackData({
|
|
target = target,
|
|
bg_list = bg_list,
|
|
camera_args = camera_args,
|
|
activity = {is_show = true,}
|
|
})
|
|
self.back_target_view = target
|
|
elseif self.view_style == UITabWindow.SizeLargeNoTab then
|
|
if self.win_bg then
|
|
self.win_bg.gameObject:SetActive(false)
|
|
end
|
|
local args1 = {size = {x = 1560, y = 720,} ,pos = {x = 0, y = 0,}}
|
|
local bg_list =
|
|
{
|
|
[1] = {res = bg1, args = args1 },
|
|
}
|
|
local data =
|
|
{
|
|
target = target,
|
|
bg_list = bg_list,
|
|
camera_args = back_camera_args,
|
|
activity = {is_show = true,}
|
|
}
|
|
LuaViewManager:getInstance():ShowBackData(data)
|
|
self.back_target_view = target
|
|
elseif self.view_style == UITabWindow.SizeSmallHall
|
|
or self.view_style == UITabWindow.SizeSmallHallNoTab
|
|
or self.view_style == UITabWindow.SizeSmallActHall
|
|
then
|
|
if self.win_bg then
|
|
self.win_bg.gameObject:SetActive(false)
|
|
end
|
|
|
|
if self.win_bg_base_trm then
|
|
self.win_bg_base_trm.gameObject:SetActive(false)
|
|
end
|
|
local args1 = {size = {x = 1280, y = 720,} ,pos = {x = 0, y = 0,}}
|
|
local bg_list =
|
|
{
|
|
[1] = {res = bg1, args = args1 },
|
|
}
|
|
local data =
|
|
{
|
|
target = target,
|
|
bg_list = bg_list,
|
|
camera_args = back_camera_args,
|
|
activity = {is_show = true,}
|
|
}
|
|
|
|
LuaViewManager:getInstance():ShowBackData(data)
|
|
self.back_target_view = target
|
|
end
|
|
end
|
|
|
|
-- function UITabWindow:SetSceneTextureLimit( flag )
|
|
-- local limit_level = flag and 4 or 0
|
|
-- QualitySettings.masterTextureLimit = limit_level
|
|
-- end
|
|
function UITabWindow:UpdateTabInfo( tabbar_list )
|
|
self.tabbar_list = self:CheckTabbarOpen(tabbar_list)
|
|
self.tab_view:RefreshTabData(self.tabbar_list, self.select_callback, self.parms.tabbar_style)
|
|
-- self:LoadTabbarPrefab()
|
|
end
|
|
|
|
--改变金钱界面显示类型
|
|
function UITabWindow:ChangeShowFlag( money_type,goods_id )
|
|
if self.money_view then
|
|
self.money_view:ChangeShowFlag(money_type,goods_id)
|
|
end
|
|
end
|
|
|
|
function UITabWindow:ChangeAddBtnRes( res )
|
|
if self.money_view then
|
|
print("huangcong:UITabWindow [start:735] res:", res)
|
|
self.money_view:ChangeAddBtnRes(res)
|
|
else
|
|
self.money_view_add_res = res
|
|
end
|
|
end
|
|
|
|
--设置 Head 的 Siblingindex
|
|
--Is_down 是否降低(为false表示还原)
|
|
function UITabWindow:SetHeadSiblingIndex(is_down)
|
|
if is_down then
|
|
if self.win_bg_tf and self.di_head_trans then
|
|
local sibing_index = self.win_bg_tf:GetSiblingIndex()
|
|
self.di_head_trans:SetSiblingIndex(sibing_index + 1)
|
|
end
|
|
else
|
|
if self.di_head_trans then
|
|
local child_num = self.di_head_trans.parent.childCount
|
|
self.di_head_trans:SetSiblingIndex(child_num)
|
|
end
|
|
end
|
|
end
|