NoticeView.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. using UnityEngine;
  2. using FairyGUI;
  3. using UI.Notice;
  4. namespace GFGGame
  5. {
  6. public class NoticeView : BaseWindow
  7. {
  8. private UI_NoticeUI _ui;
  9. private EffectUI _effectUI1;
  10. private EffectUI _effectUI2;
  11. public override void Dispose()
  12. {
  13. EffectUIPool.Recycle(_effectUI1);
  14. _effectUI1 = null;
  15. EffectUIPool.Recycle(_effectUI2);
  16. _effectUI2 = null;
  17. if (_ui != null)
  18. {
  19. _ui.Dispose();
  20. _ui = null;
  21. }
  22. base.Dispose();
  23. }
  24. protected override void Init()
  25. {
  26. base.Init();
  27. packageName = UI_NoticeUI.PACKAGE_NAME;
  28. _ui = UI_NoticeUI.Create();
  29. this.viewCom = _ui.target;
  30. this.viewCom.Center();
  31. this.modal = true;
  32. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  33. }
  34. protected override void OnInit()
  35. {
  36. base.OnInit();
  37. _ui.m_listActivity.itemRenderer = ListActivityItemRender;
  38. _ui.m_listActivity.onClick.Add(OnListActivityClick);
  39. _ui.m_listNotice.itemRenderer = ListNoticeItemRender;
  40. _ui.m_c1.onChanged.Add(OnCtrlChange);
  41. AddEffect();
  42. }
  43. protected override void AddEventListener()
  44. {
  45. base.AddEventListener();
  46. EventAgent.AddEventListener(ConstMessage.NOTICE_SYSTOM_ADD, OnCtrlChange);
  47. EventAgent.AddEventListener(ConstMessage.NOTICE_SYSTOM_REMOVE, OnCtrlChange);
  48. }
  49. protected override void OnShown()
  50. {
  51. base.OnShown();
  52. _ui.m_c1.selectedIndex = 1;
  53. _ui.m_listActivity.visible = true;
  54. _ui.m_listNotice.visible = true;
  55. _ui.m_buttonCom.visible = true;
  56. OnCtrlChange();
  57. }
  58. protected override void OnHide()
  59. {
  60. base.OnHide();
  61. }
  62. protected override void RemoveEventListener()
  63. {
  64. base.RemoveEventListener();
  65. EventAgent.RemoveEventListener(ConstMessage.NOTICE_SYSTOM_ADD, OnCtrlChange);
  66. EventAgent.RemoveEventListener(ConstMessage.NOTICE_SYSTOM_REMOVE, OnCtrlChange);
  67. }
  68. private void AddEffect()
  69. {
  70. //邊框左上角特效
  71. _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");
  72. //邊框右下角特效
  73. _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");
  74. }
  75. private void OnCtrlChange()
  76. {
  77. if (_ui.m_c1.selectedIndex == 0)
  78. {
  79. _ui.m_listActivity.numItems = 0;
  80. _ui.m_txtTips.visible = _ui.m_listActivity.numItems == 0;
  81. }
  82. else if (_ui.m_c1.selectedIndex == 1)
  83. {
  84. _ui.m_listNotice.numItems = NoticeDataManager.Instance.NoticeInfos.Count;
  85. _ui.m_txtTips.visible = _ui.m_listNotice.numItems == 0;
  86. }
  87. }
  88. private void ListActivityItemRender(int index, GObject obj)
  89. {
  90. UI_ListActivityItem item = UI_ListActivityItem.Proxy(obj);
  91. item.m_loaShow.url = ResPathUtil.GetActivityPath("");
  92. item.target.data = index;
  93. UI_ListActivityItem.ProxyEnd();
  94. }
  95. private void OnListActivityClick(EventContext context)
  96. {
  97. // _ui.m_listActivity.visible = false;
  98. // _ui.m_listNotice.visible = false;
  99. // int noticeId = (int)(context.data as GObject).data;
  100. // ViewManager.Show<NoticeActivityShowView>(null, new object[] { typeof(NoticeView).Name, this.viewData });
  101. }
  102. private void ListNoticeItemRender(int index, GObject obj)
  103. {
  104. NoticeInfo noticeInfo = NoticeDataManager.Instance.NoticeInfos[index];
  105. UI_ListNoticeItem item = UI_ListNoticeItem.Proxy(obj);
  106. item.m_txtTitle.text = noticeInfo.title;
  107. item.m_txtTime.text = TimeUtil.FormattingTimeTo_yyyMMdd0(noticeInfo.time);
  108. // item.m_imgTips.visible = !noticeInfo.readStatus;
  109. RedDotController.Instance.SetComRedDot(item.target, !noticeInfo.readStatus, "gg_gg_hdhdgth", -40, 32);
  110. if (item.m_btnGo.data == null)
  111. {
  112. item.m_btnGo.onClick.Add(OnListNoticeBtnGoClick);
  113. }
  114. item.m_btnGo.data = noticeInfo;
  115. UI_ListNoticeItem.ProxyEnd();
  116. }
  117. private async void OnListNoticeBtnGoClick(EventContext context)
  118. {
  119. _ui.m_listActivity.visible = false;
  120. _ui.m_listNotice.visible = false;
  121. _ui.m_buttonCom.visible = false;
  122. NoticeInfo noticeInfo = (context.sender as GObject).data as NoticeInfo;
  123. if (noticeInfo.content == "")
  124. {
  125. bool result = await NoticeSProxy.ReqSystemNotice(noticeInfo.noticeId);
  126. if (result)
  127. {
  128. ViewManager.Show<NoticeSystemShowView>(NoticeDataManager.Instance.GetNoticeInfoById(noticeInfo.noticeId));
  129. }
  130. }
  131. else
  132. {
  133. ViewManager.Show<NoticeSystemShowView>(noticeInfo);
  134. }
  135. }
  136. }
  137. }