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

115 rivejä
2.8 KiB

1 kuukausi sitten
  1. FuliLimitPackageNumItem = FuliLimitPackageNumItem or BaseClass(BaseItem)
  2. function FuliLimitPackageNumItem:__init(parent_wnd, prefab_asset, layer_name)
  3. self.base_file = "fuli"
  4. self.layout_file = "FuliLimitPackageNumItem"
  5. self.is_delay_callback = true
  6. self.data = false
  7. self.time = false
  8. self.loop_mgr = LoopScrowViewMgr.New()
  9. self.item_list = {}
  10. self.tween_id = false
  11. self:Load()
  12. end
  13. function FuliLimitPackageNumItem:Load_callback()
  14. local nodes = {
  15. "ScrollView",
  16. "ScrollView/Viewport/Content",
  17. }
  18. self:GetChildren(nodes)
  19. self:InitEvent()
  20. if self.need_refreshData then
  21. self:SetData(self.data, self.time)
  22. end
  23. end
  24. function FuliLimitPackageNumItem:InitEvent()
  25. end
  26. function FuliLimitPackageNumItem:SetData(data, time)
  27. self.data = data
  28. self.time = time
  29. if self.is_loaded then
  30. self:UpdateView()
  31. else
  32. self.need_refreshData = true
  33. end
  34. end
  35. function FuliLimitPackageNumItem:__delete()
  36. if self.loop_mgr then
  37. self.loop_mgr:DeleteMe()
  38. self.loop_mgr = nil
  39. end
  40. for i = 1,#self.item_list do
  41. self.item_list[i]:DeleteMe()
  42. end
  43. self.item_list = {}
  44. if self.tween_id then
  45. TweenLite.Stop(self.tween_id)
  46. end
  47. self.tween_id = false
  48. if self.timer_update then
  49. TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_update)
  50. self.timer_update = nil
  51. end
  52. end
  53. function FuliLimitPackageNumItem:UpdateView()
  54. self.data_list_num = self.time * 30 + self.data
  55. for k = 1,3 do
  56. local item = self.item_list[k]
  57. if item == nil then
  58. item = FuliLimitPackageNumTextItem.New(self.Content,nil,self.maskID)
  59. self.item_list[k] = item
  60. end
  61. end
  62. self.loop_mgr:Init(self.ScrollView,self.Content,1,15,25,function(item,index,realIndex )
  63. self:OnInitializeItem(item,index,realIndex)
  64. end, 0, 0)
  65. self.loop_mgr:InitChildren(self.item_list, self.data_list_num)
  66. self.loop_mgr:RestToBeginning()
  67. self.loop_mgr:SetContentSizeData()
  68. end
  69. function FuliLimitPackageNumItem:OnInitializeItem(item,index,realIndex)
  70. if item and realIndex > 0 and realIndex <= self.data_list_num then
  71. if self.data_list_num == realIndex then
  72. item:SetData(self.data)
  73. else
  74. item:SetData(realIndex%10)
  75. end
  76. if not self.tween_id then
  77. local function end_func( )
  78. if self.tween_id then
  79. TweenLite.Stop(self.tween_id)
  80. end
  81. self.tween_id = false
  82. if self.timer_update then
  83. TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_update)
  84. self.timer_update = nil
  85. end
  86. end
  87. self.tween_id = TweenLite.to(self,self.Content, TweenLite.UiAnimationType.POSY, (self.data_list_num - 1) *(25), 3, end_func, TweenFunc.EASE_OUT, false)
  88. local function timer_func()
  89. if self.tween_id then
  90. self.loop_mgr.mNeedToWrap = true
  91. self.loop_mgr:WrapContent()
  92. end
  93. end
  94. self.timer_update = TimerQuest.AddPeriodQuest(GlobalTimerQuest, timer_func, 0.02)
  95. end
  96. end
  97. end