源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

128 рядки
3.3 KiB

4 тижднів тому
  1. SupremeVipShopView = SupremeVipShopView or BaseClass(BaseItem)
  2. local SupremeVipShopView = SupremeVipShopView
  3. function SupremeVipShopView:__init()
  4. self.base_file = "supremeVip"
  5. self.layout_file = "SupremeVipShopView"
  6. self.model = SupremeVipModel:getInstance()
  7. self:Load()
  8. end
  9. function SupremeVipShopView:Load_callback()
  10. self.nodes = {
  11. "starDiamondBtn:obj", "starIcon:img",
  12. "des1Img:img",
  13. "ScrollView", "ScrollView/Viewport/Content",
  14. "starDiamondNum:tmp",
  15. "shopBg:img",
  16. }
  17. self:GetChildren(self.nodes)
  18. -- self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45104)--查询商城限购数据
  19. lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_7_pointfilter"),false,nil)
  20. lua_resM:setOutsideImageSprite(self,self.shopBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_bg_long"),false,nil)
  21. self:AddEvents()
  22. if self.need_refreshData then
  23. self:UpdateView()
  24. end
  25. end
  26. function SupremeVipShopView:AddEvents( )
  27. local on_click = function ( click_obj )
  28. if self.starDiamondBtn_obj == click_obj then
  29. OpenFun.Open(450,1)
  30. end
  31. end
  32. AddClickEvent(self.starDiamondBtn_obj, on_click)--获得星钻
  33. --查询商城限购数据后,刷新商城item展示
  34. local function update_shop_con()
  35. self:UpdateShopCon()
  36. end
  37. self:BindEvent(self.model, SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON,update_shop_con)
  38. --星钻数量变更
  39. local function update_star_diamond_num()
  40. self:UpdateStarDiamondNum()
  41. end
  42. self:BindEvent(self.model, SupremeVipConst.REFRESH_STAR_DIAMOND_NUM,update_star_diamond_num)
  43. end
  44. function SupremeVipShopView:UpdateView( )
  45. self:UpdateStarDiamondNum()
  46. self:UpdateShopCon()
  47. end
  48. --刷新星钻数
  49. function SupremeVipShopView:UpdateStarDiamondNum( )
  50. self.starDiamondNum_tmp.text = self.model.star_gold
  51. end
  52. --刷新商城列表
  53. function SupremeVipShopView:UpdateShopCon( )
  54. local shop_cfg = self.model:GetSupremeVipShopCfg()
  55. -- if not self.item_list_com then
  56. -- self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
  57. -- end
  58. -- local info = {
  59. -- data_list = shop_cfg,
  60. -- item_con = self.Content,
  61. -- item_class = SupremeVipShopItem,
  62. -- item_width = SupremeVipShopItem.Width,
  63. -- item_height = SupremeVipShopItem.Height,
  64. -- space_x = 14,
  65. -- space_y = -5,
  66. -- start_x = 2,
  67. -- start_y = 7,
  68. -- scroll_view = self.ScrollView,
  69. -- -- create_frequency = 0.01,
  70. -- reuse_item_num = 999,
  71. -- on_update_item = function(item, i, v)
  72. -- item:SetData(v,i)
  73. -- end,
  74. -- }
  75. -- self.item_list_com:UpdateItems(info)
  76. self.item_list = self.item_list or {}
  77. for k,v in pairs(self.item_list) do
  78. v:SetVisible(false)
  79. end
  80. local offset_x = 14+146
  81. local offset_y = -5+181
  82. local show_col = 4
  83. for i,v in ipairs(shop_cfg) do
  84. local item = self.item_list[i]
  85. if not item then
  86. item = SupremeVipShopItem.New(self.Content)
  87. self.item_list[i] = item
  88. end
  89. item:SetVisible(true)
  90. item:SetAnchoredPosition(2+offset_x*((i-1)%show_col), 7-offset_y*math.floor((i-1)/show_col))
  91. item:SetData(v,i)
  92. end
  93. SetSizeDeltaY(self.Content,math.ceil(#shop_cfg/show_col)*offset_y+8)
  94. end
  95. function SupremeVipShopView:SetData( data )
  96. self.data = data
  97. if self.is_loaded then
  98. self.need_refreshData = false
  99. self:UpdateView()
  100. else
  101. self.need_refreshData = true
  102. end
  103. end
  104. function SupremeVipShopView:__delete( )
  105. for k,v in pairs(self.item_list) do
  106. v:DeleteMe()
  107. v = nil
  108. end
  109. self.item_list = {}
  110. end