LoadingPlayLayer_launcher.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. local LoadingPlayLayer = class("LoadingPlayLayer", function ()
  2. return cc.Layer:create()
  3. end)
  4. LoadingPlayLayer.loadingPath = "res_launcher/private/loading/"
  5. function LoadingPlayLayer:ctor()
  6. end
  7. function LoadingPlayLayer.create(...)
  8. local layer = LoadingPlayLayer.new()
  9. if layer:Init(...) then
  10. return layer
  11. end
  12. return nil
  13. end
  14. function LoadingPlayLayer:Init()
  15. self._root = CreateExport_launcher("loading/res_loading")
  16. if not self._root then
  17. return false
  18. end
  19. self:addChild(self._root)
  20. self.ui = ui_delegate(self._root)
  21. local visibleSize = cc.Director:getInstance():getVisibleSize()
  22. self.ui.Panel_pre:setPosition({x = visibleSize.width / 2, y = visibleSize.height / 2 + 60})
  23. self.ui.Panel_point:removeAllChildren(true)
  24. self.ui.PageView:removeAllChildren(true)
  25. self:InitImagePreview()
  26. return true
  27. end
  28. function LoadingPlayLayer:updatePoint(index)
  29. for i, v in ipairs(self.ui.Panel_point:getChildren()) do
  30. self:UpdatePreLoadingPic(v, string.format( self.loadingPath .. "line_%s.png", v:getTag() == index and 2 or 1))
  31. end
  32. end
  33. function LoadingPlayLayer:addSchedule()
  34. local callback = function()
  35. if not self.ui or not self.ui.PageView then
  36. global.L_LoadingPlayManager:CloseLayer()
  37. return false
  38. end
  39. local index = self.ui.PageView:getCurrentPageIndex()
  40. if index >= self._nMax - 1 then
  41. self.ui.PageView:setCurrentPageIndex(0)
  42. self:updatePoint(0)
  43. else
  44. self.ui.PageView:scrollToPage(index + 1)
  45. self:updatePoint(index + 1)
  46. end
  47. end
  48. self:CloseLayer()
  49. self._handler = cc.Director:getInstance():getScheduler():scheduleScriptFunc(callback, 5, false)
  50. end
  51. function LoadingPlayLayer:CloseLayer()
  52. if self._handler then
  53. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self._handler)
  54. end
  55. end
  56. function LoadingPlayLayer:UpdatePreLoadingPic(ui, path)
  57. ui:loadTexture(path)
  58. ui:setVisible(true)
  59. end
  60. function LoadingPlayLayer:InitImagePreview()
  61. if not global.L_ModuleManager or not global.L_ModuleManager:GetImagePre() then
  62. return self.ui.Panel_pre:setVisible(false)
  63. end
  64. local paths = global.L_ModuleManager:GetImagePre()
  65. if #paths < 1 then
  66. return self.ui.Panel_pre:setVisible(false)
  67. end
  68. self._nMax = #paths
  69. local pw = math.floor(400 / self._nMax)
  70. local directoryPath = global.FileUtilCtl:getWritablePath()
  71. for i = 1, self._nMax do
  72. local item = self.ui.Item:clone()
  73. local url = paths[i]
  74. local name = string.format("Preloadiloading_%s.png", i)
  75. local filename = directoryPath .. name
  76. if global.FileUtilCtl:isFileExist(filename) then
  77. global.FileUtilCtl:removeFile(filename)
  78. end
  79. global.L_GameEnvManager:downloadResEasy(url, name, function(isOK, path)
  80. if isOK then
  81. global.L_LoadingPlayManager:UpdatePreLoadingPic(item, path)
  82. end
  83. end)
  84. self.ui.PageView:addPage(item)
  85. -- 点
  86. local point = self.ui.Image_point:clone()
  87. self:UpdatePreLoadingPic(point, self.loadingPath .. "line_1.png")
  88. point:setTag(i-1)
  89. point:setPosition(cc.p(pw * i - pw / 2, 2))
  90. point:setContentSize({width = pw, height = 4})
  91. self.ui.Panel_point:addChild(point)
  92. point:setVisible(true)
  93. end
  94. -- 滑动翻页
  95. self.ui.PageView:addEventListener(function (sender, eventType)
  96. if eventType == 0 then
  97. local index = sender:getCurrentPageIndex()
  98. self:updatePoint(index)
  99. end
  100. end)
  101. self:updatePoint(0)
  102. self.ui.PageView:scrollToPage(0)
  103. self:addSchedule()
  104. self.ui.Panel_pre:setVisible(true)
  105. end
  106. return LoadingPlayLayer