源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

129 行
4.0 KiB

  1. AchievePrivilegeView = AchievePrivilegeView or BaseClass(BaseView)
  2. local AchievePrivilegeView = AchievePrivilegeView
  3. function AchievePrivilegeView:__init()
  4. self.base_file = "achievement"
  5. self.layout_file = "AchievePrivilegeView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = G_USING_BG --全屏界面默认使用这个参数
  9. --self.hide_maincancas = true --全屏界面需要放开隐藏主UI
  10. self.change_scene_close = true
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏
  13. self.is_set_zdepth = true
  14. self.model = AchieveModel:getInstance()
  15. self.privilege_data = self.model:GetAchievePrivilegeTabData() -- 获取特权按钮数据
  16. self.privilege_item = {}
  17. self.load_callback = function ()
  18. self:LoadSuccess()
  19. self:AddEvent()
  20. end
  21. self.open_callback = function ( )
  22. self:OpenSuccess()
  23. end
  24. self.switch_callback = function(index)
  25. self:SwitchTab(index)
  26. end
  27. self.destroy_callback = function ( )
  28. self:DestroySuccess()
  29. end
  30. end
  31. function AchievePrivilegeView:Open( )
  32. --self.data = data
  33. BaseView.Open(self)
  34. end
  35. function AchievePrivilegeView:LoadSuccess()
  36. local nodes = {
  37. "container","container/ScrollView_item/Viewport/Content_item",
  38. "container/ScrollView_item","bg:img", "btn_close:obj",
  39. "lb_title:tmp",
  40. }
  41. self:GetChildren(nodes)
  42. self:UpdateBaseView( )
  43. end
  44. function AchievePrivilegeView:UpdateBaseView( )
  45. local closeWin_callback = function()
  46. self:Close()
  47. end
  48. lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetViewBigBg('achi_privilege_bg2'), false)
  49. self.lb_title_tmp.text = "成就里程碑"
  50. -- self.tabWindowComponent = UITabWindow.New(self.transform,{},select_callback,closeWin_callback,self.background_wnd,self.container, UITabWindow.SizeSmallNoTab, false,nil,true)
  51. -- self.tabWindowComponent:SetBackgroundRes("achi_privilege_bg2")
  52. -- self.tabWindowComponent:SetTitleText("特权预览")
  53. end
  54. function AchievePrivilegeView:AddEvent()
  55. local on_click = function ( click_obj )
  56. if self.btn_close_obj == click_obj then
  57. self:Close()
  58. end
  59. end
  60. AddClickEvent(self.btn_close_obj, on_click)
  61. end
  62. function AchievePrivilegeView:OpenSuccess()
  63. self:UpdateView()
  64. end
  65. function AchievePrivilegeView:UpdateView()
  66. local cur_index = self.model:GetCurPrivilegeStage()
  67. -- for k, v in ipairs(self.privilege_data) do
  68. -- local item = self.privilege_item[k]
  69. -- if not item then
  70. -- item = AchievePrivilegeItem.New(self.Content_item)
  71. -- self.privilege_item[k] = item
  72. -- end
  73. -- item:SetData(v, k)
  74. -- end
  75. -- local callback = function(index)
  76. -- self:ChangeTab(index)
  77. -- end
  78. self.item_creator = self.item_creator or self:AddUIComponent(UI.ItemListCreator)
  79. self.item_creator:Reset()
  80. local ITEM_WIDTH = 253
  81. local START_X = 15
  82. local info = {
  83. data_list = self.privilege_data,
  84. item_con = self.Content_item,
  85. scroll_view = self.ScrollView_item,
  86. item_class = AchievePrivilegeItem,
  87. item_width = ITEM_WIDTH,
  88. start_x = START_X,
  89. start_y = -3,
  90. space_y = 0,
  91. -- add_width = 1000,
  92. reuse_item_num = 5,
  93. create_frequency = 0.01,
  94. alignment = UnityEngine.TextAnchor.UpperLeft,
  95. on_update_item = function(item, i, v)
  96. item:SetData(v, i)
  97. end,
  98. }
  99. self.item_creator:UpdateItems(info)
  100. SetSizeDeltaX(self.Content_item, START_X + ITEM_WIDTH * #self.privilege_data)
  101. if cur_index > 3 then
  102. self.item_creator:ScrollToItem(cur_index)
  103. end
  104. end
  105. function AchievePrivilegeView:SwitchTab( index )
  106. end
  107. function AchievePrivilegeView:DestroySuccess( )
  108. -- if self.tabWindowComponent then
  109. -- self.tabWindowComponent:DeleteMe()
  110. -- self.tabWindowComponent = nil
  111. -- end
  112. for k, v in pairs(self.privilege_item) do
  113. v:DeleteMe()
  114. v = nil
  115. end
  116. self.privilege_item = nil
  117. end