源战役客户端
Você não pode selecionar mais de 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.

146 linhas
5.1 KiB

4 semanas atrás
  1. MessageItem = MessageItem or BaseClass(BaseItem)
  2. local MessageItem = MessageItem
  3. local EnglineVersion = EnglineVersion
  4. local AppConst_EnglineVer = AppConst_EnglineVer
  5. local MsgType = {
  6. Normal = 1,
  7. Exp = 2,
  8. }
  9. function MessageItem:__init(parent,prefab_asset,layer_name,callback,msg_type)
  10. self.base_file = "message"
  11. self.layout_file = "miniMessage"
  12. self.layer_name = "Top"
  13. self.anim_list = {}
  14. self.timer_list = {}
  15. self.fade_in_time = 0.8
  16. self.stay_time = 0.3
  17. self.fade_out_time = 0.6
  18. self.state = 0
  19. self.content = ""
  20. self.callback = callback
  21. self.msg_type = msg_type
  22. self:Load()
  23. end
  24. function MessageItem:__delete()
  25. self:StopAnim()
  26. end
  27. function MessageItem:Load_callback()
  28. self.bg = self:GetChild("bg").gameObject
  29. self.bg_transform = self.bg.transform
  30. --self.bg_img = self.bg:GetComponent("Image")
  31. self.text = self:GetChild("Text"):GetComponent("Text")
  32. self.expText = self:GetChild("expText"):GetComponent("Text")
  33. self.out_line = self:GetChild("expText"):GetComponent("Outline")
  34. self.canvasGroup = self.transform:GetComponent("CanvasGroup")
  35. self.gameObject:SetActive(false)
  36. end
  37. function MessageItem:CreateFinAnim(content)
  38. if not self.gameObject then return end
  39. self:StopAnim()
  40. self.state = 1
  41. self:ResetUIZDepth()
  42. self.content = content or self.content
  43. -- item.bg.sizeDelta = Vector2(item.text.preferredWidth + 50,43)
  44. self.gameObject:SetActive(true)
  45. self:AddUIZDepth()
  46. self.canvasGroup.alpha = 0.0
  47. --不仅z轴要跑到最前面, orderinlayer也要最前面
  48. UIDepth.SetUIDepth(self.gameObject,true,self:GetCurrLayerDepth(self.layer_name)+1)
  49. --层次要在ui层,不设就在default层,会低于ui层而看不到
  50. self.gameObject.layer = UIPartical.RenderingOther_List.UI
  51. --设置每一个item的位置,让所有item居中
  52. SetLocalPosition(self.transform, 0,0,GetLocalPositionZ(self.transform))
  53. self.text.text = self.content
  54. --目前是写死310的文本长度,如果超过了,让策划改文本
  55. -- local width = math.max(300,self.text.preferredWidth+40)
  56. self.bg_transform.sizeDelta = Vector2(310,48)
  57. local index = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSY, GetLocalPositionY(self.transform) + 90, self.fade_in_time, function()
  58. self:CreateStayAnim()
  59. end)
  60. table.insert(self.anim_list, index)
  61. local temp1 = TweenLite.to (self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 1, self.fade_in_time)
  62. table.insert(self.anim_list, temp1)
  63. --[[
  64. if EnglineVersion and AppConst_EnglineVer >= 24 then
  65. -- local temp1 = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 1, self.fade_in_time)
  66. -- table.insert(self.anim_list, temp1)
  67. local temp1 = TweenLite.to (self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
  68. table.insert(self.anim_list, temp1)
  69. else
  70. local temp1 = TweenLite.to (self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
  71. table.insert(self.anim_list, temp1)
  72. -- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 1, self.fade_in_time)
  73. -- table.insert(self.anim_list, temp2)
  74. end
  75. --]]
  76. end
  77. function MessageItem:CreateStayAnim()
  78. self:StopAnim()
  79. self.state = 2
  80. -- if EnglineVersion and AppConst_EnglineVer >= 24 then
  81. self.canvasGroup.alpha = 1
  82. -- else
  83. -- SetAlpha(self.bg_img, 1)
  84. -- SetAlpha(self.text, 1)
  85. -- end
  86. table.insert(self.timer_list, GlobalTimerQuest:AddDelayQuest(function()
  87. self:CreateFoutAnim()
  88. end, self.stay_time))
  89. if self.callback then
  90. self.callback()
  91. end
  92. end
  93. function MessageItem:CreateFoutAnim()
  94. self:StopAnim()
  95. self.state = 3
  96. local anim_end_func = function ()
  97. self.state = 0
  98. self:StopAnim()
  99. self:ResetUIZDepth()
  100. self.gameObject:SetActive(false)
  101. end
  102. local index = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSY, GetLocalPositionY(self.transform) + 100, self.fade_out_time, anim_end_func)
  103. table.insert(self.anim_list, index)
  104. local temp1 = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 0, self.fade_out_time)
  105. table.insert(self.anim_list, temp1)
  106. -- local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
  107. -- table.insert(self.anim_list, temp2)
  108. --[[
  109. if EnglineVersion and AppConst_EnglineVer >= 24 then
  110. -- local index = TweenLite.to(self, self.canvasGroup, TweenLite.UiAnimationType.ALPHA, 0, self.fade_out_time)
  111. -- table.insert(self.anim_list, index)
  112. local temp1 = TweenLite.to(self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
  113. table.insert(self.anim_list, temp1)
  114. local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
  115. table.insert(self.anim_list, temp2)
  116. else
  117. local temp1 = TweenLite.to(self, self.bg_img, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
  118. table.insert(self.anim_list, temp1)
  119. local temp2 = TweenLite.to(self, self.text, TweenLite.UiAnimationType.ALPHA_OLD, 0, self.fade_out_time)
  120. table.insert(self.anim_list, temp2)
  121. end
  122. --]]
  123. end
  124. function MessageItem:StopAnim()
  125. for i,v in ipairs(self.anim_list) do
  126. TweenLite.Stop(v)
  127. end
  128. self.anim_list = {}
  129. for i,v in ipairs(self.timer_list) do
  130. GlobalTimerQuest:CancelQuest(self.timer_list)
  131. end
  132. self.timer_list = {}
  133. end