源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

104 linhas
2.5 KiB

  1. RankProgressView = RankProgressView or BaseClass(BaseView)
  2. local RankProgressView = RankProgressView
  3. function RankProgressView:__init()
  4. self.base_file = "rank"
  5. self.layout_file = "RankProgressView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.change_scene_close = true
  10. self.hide_maincancas = true --是否隐藏主界面
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏
  13. self.click_bg_toClose = true
  14. self.is_set_zdepth = true
  15. self.blur_activity_bg = true
  16. self.model = RankModel:getInstance()
  17. self.top_item_list = {}
  18. self.load_callback = function ()
  19. self:LoadSuccess()
  20. self:AddEvent()
  21. end
  22. self.open_callback = function ( )
  23. -- self:OpenSuccess()
  24. end
  25. self.destroy_callback = function ( )
  26. self:DestroySuccess()
  27. end
  28. end
  29. function RankProgressView:Open(rank_type)
  30. self.rank_type = rank_type
  31. BaseView.Open(self)
  32. end
  33. function RankProgressView:LoadSuccess()
  34. local nodes = {
  35. "bg:img",
  36. "close:obj",
  37. "content",
  38. }
  39. self:GetChildren(nodes)
  40. lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetRankBg("rank_progress_bg"))
  41. self.model:Fire(RankModel.REQUEST_CCMD_EVENT, 22111, self.rank_type)
  42. end
  43. function RankProgressView:AddEvent()
  44. local on_click = function ( click_obj )
  45. if self.close_obj == click_obj then
  46. self:Close()
  47. end
  48. end
  49. AddClickEvent(self.close_obj, on_click)
  50. local function on_update_progress_view(rank_type)
  51. if self.is_loaded and self.rank_type == rank_type then
  52. self:UpdateView()
  53. end
  54. end
  55. self:BindEvent(self.model, RankModel.UPDATE_RANK_PROGRESS_VIEW, on_update_progress_view)
  56. end
  57. function RankProgressView:UpdateView()
  58. local top_five_data = {}
  59. local all_target_server_data = self.model:GetRankProgressData(self.rank_type)
  60. for i=1,5 do
  61. if all_target_server_data[i] then
  62. table.insert(top_five_data, all_target_server_data[i])
  63. else
  64. local temp = {empty_data = true}
  65. table.insert(top_five_data, temp)
  66. end
  67. end
  68. for k,v in pairs(self.top_item_list) do
  69. v:SetVisible(false)
  70. end
  71. for i,v in ipairs(top_five_data) do
  72. local item = self.top_item_list[i]
  73. if not item then
  74. item = RankProgressItem.New(self.content)
  75. self.top_item_list[i] = item
  76. end
  77. item:SetVisible(true)
  78. item:SetData(v,i,self.rank_type)
  79. item:SetAnchoredPosition(2, -(i-1)*93-7)
  80. end
  81. end
  82. function RankProgressView:DestroySuccess( )
  83. for i, v in ipairs(self.top_item_list) do
  84. v:DeleteMe()
  85. end
  86. self.top_item_list = {}
  87. end