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

774 lines
27 KiB

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