源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

91 Zeilen
2.8 KiB

  1. --正常的呼吸灯动画
  2. ActionBreathLight = ActionBreathLight or BaseClass()
  3. local table_insert = table.insert
  4. function ActionBreathLight:__init()
  5. self._classType = "ActionBreathLight"
  6. self.canvas_com = false
  7. self.canvas_obj = false
  8. self.end_call_back = false
  9. self.anim_list = {}
  10. end
  11. function ActionBreathLight:__delete()
  12. self:StopTimer()
  13. self.canvas_com = false
  14. self.canvas_obj = false
  15. self.end_call_back = false
  16. self.anim_list = {}
  17. end
  18. function ActionBreathLight:Init(canvase_root, end_call_back, loop)
  19. self.end_call_back = end_call_back
  20. self.loop = loop == nil and true or false
  21. if canvase_root then
  22. self.canvas_com = canvase_root:GetComponent("CanvasGroup")
  23. self.canvas_obj = canvase_root.gameObject
  24. self:PlayAction()
  25. else
  26. if self.end_call_back then
  27. self.end_call_back()
  28. end
  29. end
  30. end
  31. function ActionBreathLight:PlayAction()
  32. self.canvas_obj:SetActive(true)
  33. self.canvas_com.alpha = 0
  34. local function call_func()
  35. local id = TweenLite.to(self, self.canvas_com,TweenLite.UiAnimationType.ALPHA, 1, 1)
  36. table_insert(self.anim_list, id)
  37. end
  38. local callfun1 = cc.CallFunc.New(call_func)
  39. -----------
  40. local function call_func2()
  41. local id = TweenLite.to(self, self.canvas_com,TweenLite.UiAnimationType.ALPHA, 0, 1)
  42. table_insert(self.anim_list, id)
  43. end
  44. local callfun2 = cc.CallFunc.New(call_func2)
  45. local function call_func3()
  46. local id = TweenLite.to(self, self.canvas_com,TweenLite.UiAnimationType.ALPHA, 1, 1)
  47. table_insert(self.anim_list, id)
  48. end
  49. local callfun3 = cc.CallFunc.New(call_func3)
  50. ----------
  51. local function call_func4()
  52. local function end_call_back( ... )
  53. if self.loop then
  54. self:StopTimer()
  55. self:PlayAction()
  56. end
  57. if self.call_back then
  58. self.call_back()
  59. end
  60. end
  61. local id = TweenLite.to(self, self.canvas_com,TweenLite.UiAnimationType.ALPHA, 0, 1, end_call_back)
  62. table_insert(self.anim_list, id)
  63. end
  64. local callfun4 = cc.CallFunc.New(call_func4)
  65. local action = cc.Sequence.New(callfun1, cc.DelayTime.New(2), callfun2, cc.DelayTime.New(1), callfun3, cc.DelayTime.New(2), callfun4, cc.DelayTime.New(1))
  66. cc.ActionManager:getInstance():addAction(action, self.canvas_obj)
  67. end
  68. function ActionBreathLight:StopAction()
  69. self:StopTimer()
  70. self.canvas_obj:SetActive(true)
  71. self.canvas_com.alpha = 1
  72. end
  73. function ActionBreathLight:StopTimer()
  74. cc.ActionManager:getInstance():removeAllActionsFromTarget(self.canvas_obj)
  75. for i,v in ipairs(self.anim_list) do
  76. TweenLite.Stop(v)
  77. end
  78. self.anim_list = {}
  79. end