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

86 line
2.7 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 招财猫广告界面
  4. -- *>
  5. FortuneCatAdTipsView = FortuneCatAdTipsView or BaseClass(BaseView)
  6. local FortuneCatAdTipsView = FortuneCatAdTipsView
  7. function FortuneCatAdTipsView:__init()
  8. self.base_file = "fortuneCat"
  9. self.layout_file = "FortuneCatAdTipsView"
  10. self.layer_name = "Main"
  11. self.destroy_imm = true
  12. self.change_scene_close = true
  13. self.use_background = false --全屏界面默认使用这个参数,非全屏界面自行设置
  14. self.show_time = 20 -- 界面展示时间
  15. self.model = FortuneCatModel:getInstance()
  16. self.load_callback = function ()
  17. self:LoadSuccess()
  18. self:AddEvent()
  19. end
  20. self.open_callback = function ( )
  21. self:UpdateView()
  22. end
  23. self.destroy_callback = function ( )
  24. self:DestroySuccess()
  25. end
  26. end
  27. function FortuneCatAdTipsView:Open(sub_type)
  28. self.sub_type = sub_type
  29. BaseView.Open(self)
  30. end
  31. function FortuneCatAdTipsView:LoadSuccess()
  32. local nodes = {
  33. "ad_bg:obj:img",
  34. "ad_bg/close_btn:obj",
  35. }
  36. self:GetChildren(nodes)
  37. self.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
  38. local base_type = CustomActivityModel.CustomActBaseType.FORTUNE_CAT
  39. local icon_sub_type_base = base_type*1000
  40. if self.sub_type >= 10001 then
  41. icon_sub_type_base = base_type*100000
  42. end
  43. local pos = ActivityIconManager:getInstance():GetIconWorldPos(icon_sub_type_base + self.sub_type)
  44. SetAnchoredPosition(self.ad_bg, pos.x - 100, pos.y - 80)
  45. end
  46. function FortuneCatAdTipsView:AddEvent()
  47. local function click_event(target)
  48. if target == self.ad_bg_obj then
  49. self.model:Fire(FortuneCatModel.OPEN_FORTUNE_CAT_VIEW, true, self.sub_type)
  50. self:Close()
  51. elseif target == self.close_btn_obj then
  52. self:Close()
  53. end
  54. end
  55. AddClickEvent(self.ad_bg_obj, click_event)
  56. AddClickEvent(self.close_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
  57. end
  58. function FortuneCatAdTipsView:UpdateView()
  59. local cur_time = Status.NowTime
  60. local function auto_close_timer()
  61. local pass_time = Status.NowTime - cur_time
  62. if pass_time > self.show_time then
  63. self:Close()
  64. end
  65. end
  66. self:ClearAutoCloseTimerId()
  67. self.auto_close_timer_id = GlobalTimerQuest:AddPeriodQuest(auto_close_timer, 1, -1)
  68. end
  69. function FortuneCatAdTipsView:ClearAutoCloseTimerId( )
  70. if self.auto_close_timer_id then
  71. GlobalTimerQuest:CancelQuest(self.auto_close_timer_id)
  72. self.auto_close_timer_id = nil
  73. end
  74. end
  75. function FortuneCatAdTipsView:DestroySuccess( )
  76. self:ClearAutoCloseTimerId()
  77. self.model:SetFcAdViewOpenFlag()
  78. end