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

128 行
3.7 KiB

  1. AdvertisementView = AdvertisementView or BaseClass(BaseView)
  2. local AdvertisementView = AdvertisementView
  3. function AdvertisementView:__init()
  4. self.base_file = "advertisement"
  5. self.layout_file = "AdvertisementView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.hide_maincancas = true --全屏界面需要放开隐藏主UI
  10. self.change_scene_close = false
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏
  13. self.ad_type = ad_type
  14. self.model = AdvertisementModel:getInstance()
  15. self.load_callback = function ()
  16. self:LoadSuccess()
  17. self:AddEvent()
  18. end
  19. self.open_callback = function ( )
  20. self:OpenSuccess()
  21. end
  22. self.switch_callback = function(index)
  23. self:SwitchTab(index)
  24. end
  25. self.destroy_callback = function ( )
  26. self:DestroySuccess()
  27. end
  28. end
  29. function AdvertisementView:Open( sub_type )
  30. self.data = self.model:GetAdvertisementData(sub_type)
  31. self.sub_type = sub_type
  32. BaseView.Open(self)
  33. end
  34. function AdvertisementView:LoadSuccess()
  35. local nodes = {
  36. "goBtn:obj:img", "closeTipTxt:obj:txt", "goBtn/goTxt:obj:txt", "bg:obj:raw", "closeBtn:obj",
  37. -- 不再toggle
  38. "Toggle:obj", "Toggle/tipTxt:obj:txt", "Toggle/toggleBtn:obj", "Toggle/checkbox:obj",
  39. }
  40. self:GetChildren(nodes)
  41. self:UpdateBaseView( )
  42. end
  43. function AdvertisementView:UpdateBaseView( )
  44. self.goTxt_txt.text = "前往获取"
  45. self.closeTipTxt_txt.text = ""
  46. self.closeBtn_obj:SetActive(true) -- 默认有关闭
  47. self.tipTxt_txt.text = "今日登陆不再提示"
  48. self.today_not_show = false
  49. self.checkbox_obj:SetActive(false)
  50. end
  51. function AdvertisementView:AddEvent()
  52. local on_click = function ( click_obj )
  53. if self.goBtn_obj == click_obj then
  54. if self.data and self.data.ad_tpye == AdvertisementModel.AD_TYPE.LOGIN then
  55. OpenFun.Open(self.data.module_data[1], self.data.module_data[2])
  56. self:Close()
  57. end
  58. elseif self.closeBtn_obj == click_obj then
  59. self:Close()
  60. elseif self.toggleBtn_obj == click_obj then
  61. self:SetToggle( not self.today_not_show )
  62. end
  63. end
  64. AddClickEvent(self.goBtn_obj, on_click)
  65. AddClickEvent(self.closeBtn_obj, on_click)
  66. AddClickEvent(self.toggleBtn_obj, on_click)
  67. end
  68. function AdvertisementView:OpenSuccess()
  69. self:UpdateView()
  70. end
  71. function AdvertisementView:SetToggle( bool )
  72. self.today_not_show = bool
  73. self.checkbox_obj:SetActive(bool)
  74. end
  75. function AdvertisementView:UpdateView()
  76. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetAdBigBg(self.data.ad_pic))
  77. if self.data.ad_tpye == AdvertisementModel.AD_TYPE.LOGIN then
  78. self.goBtn_obj:SetActive(true)
  79. self.Toggle_obj:SetActive(true)
  80. --self.closeBtn_obj:SetActive(false)
  81. elseif self.data.ad_tpye == AdvertisementModel.AD_TYPE.INSIDE then
  82. self.goBtn_obj:SetActive(false)
  83. self.Toggle_obj:SetActive(false)
  84. self:AddCloseTimer()
  85. --self.closeBtn_obj:SetActive(true)
  86. else
  87. -- logWarn('=======Msh:AdvertisementView.lua[72]==ad_type error=====', self.data.ad_tpye)
  88. end
  89. end
  90. function AdvertisementView:AddCloseTimer( )
  91. self.time = 6
  92. local function clockFun()
  93. self.time = self.time - 1
  94. if self.time > 0 then
  95. self.closeTipTxt_txt.text = HtmlColorTxt( tostring(self.time) .. " 秒后自动关闭" , '#63ED80')
  96. else
  97. self:Close()
  98. end
  99. end
  100. clockFun()
  101. self.close_time_id = self.close_time_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 1, -1)
  102. end
  103. function AdvertisementView:SwitchTab( index )
  104. end
  105. function AdvertisementView:DestroySuccess( )
  106. -- 处理一下不再弹出的cookie
  107. if self.data and self.data.ad_tpye == AdvertisementModel.AD_TYPE.LOGIN and self.today_not_show then
  108. self.model:SetSubTypeCookie(self.sub_type, false)
  109. end
  110. if self.close_time_id then
  111. GlobalTimerQuest:CancelQuest(self.close_time_id)
  112. self.close_time_id = nil
  113. end
  114. end