源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

167 rindas
4.1 KiB

pirms 4 nedēļām
  1. AdventureBookDetailView = AdventureBookDetailView or BaseClass(BaseView)
  2. local AdventureBookDetailView = AdventureBookDetailView
  3. function AdventureBookDetailView:__init()
  4. self.base_file = "adventureBook"
  5. self.layout_file = "AdventureBookDetailView"
  6. self.layer_name = "UI"
  7. self.append_to_ctl_queue = true
  8. self.use_background = true
  9. self.model = AdventureBookModel:getInstance()
  10. self.totalPage = 0 --总页数
  11. self.nowPage = 0 --当前位置索引
  12. self.close_fog = true
  13. self.load_callback = function()
  14. self:LoadSuccess()
  15. end
  16. self.open_callback = function()
  17. self:OpenView(true)
  18. end
  19. self.close_callback = function()
  20. if self.model.need_find_way then
  21. GuideModel:getInstance():BeginTask(self.layout_file)
  22. end
  23. end
  24. self.destroy_callback = function()
  25. self:Remove()
  26. end
  27. end
  28. function AdventureBookDetailView:Open(type, subtype)
  29. self.type = type
  30. self.subtype = subtype
  31. BaseView.Open(self)
  32. end
  33. function AdventureBookDetailView:LoadSuccess()
  34. self.transform.localPosition = Vector3.zero
  35. self.transform.sizeDelta = Vector3.zero
  36. if ClientConfig.iphone_x_model then
  37. self.transform.offsetMin = Vector2(ClientConfig.iphone_x_offset_left,0)
  38. self.transform.offsetMax = Vector2(-ClientConfig.iphone_x_offset_right,0)
  39. end
  40. self.bg = self:GetChildImages({
  41. "bg"
  42. })
  43. self.bg.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
  44. lua_resM:setOutsideImageSprite(self,self.bg,GameResPath.GetJpgImage("zjui_bg.jpg"))
  45. self.btnLeft,
  46. self.btnRight,
  47. self.backBtn,
  48. self.closeBtn = self:GetChildGameObjects({
  49. "leftBtn",
  50. "rightBtn",
  51. "backBtn",
  52. "closeBtn"
  53. })
  54. self.parent = self:GetChildTransforms({
  55. "itemParent"
  56. })
  57. self:InitEvent()
  58. end
  59. function AdventureBookDetailView:BtnCall( )
  60. GlobalEventSystem:Fire(EventName.OPEN_ADVENTURE_BOOK_VIEW, false, self.type)
  61. self:Close()
  62. end
  63. function AdventureBookDetailView:InitEvent()
  64. local function clickHandler(target)
  65. if target == self.btnLeft then
  66. if self.nowPage > 1 then
  67. self.nowPage = self.nowPage - 1
  68. self:ShowNowPage(self.nowPage)
  69. end
  70. elseif target == self.btnRight then
  71. if self.nowPage < self.totalPage then
  72. self.nowPage = self.nowPage + 1
  73. self:ShowNowPage(self.nowPage)
  74. end
  75. elseif target == self.backBtn then
  76. self:Close()
  77. GlobalEventSystem:Fire(EventName.OPEN_ADVENTURE_BOOK_VIEW, true, self.type)
  78. elseif target == self.closeBtn then
  79. self:BtnCall()
  80. end
  81. end
  82. AddClickEvent(self.backBtn, clickHandler, 1)
  83. AddClickEvent(self.closeBtn, clickHandler, 1)
  84. AddClickEvent(self.btnLeft, clickHandler,LuaSoundManager.SOUND_UI.SWITCH)
  85. AddClickEvent(self.btnRight, clickHandler,LuaSoundManager.SOUND_UI.SWITCH)
  86. local function onUpdateView(type, subtype)
  87. if self.type and self.type == type then
  88. local book_list = self.model:GetBookListByType(self.type)
  89. if #book_list - self.totalPage > 0 then --激活的书本增加,刷新界面
  90. self.subtype = subtype
  91. self:OpenView()
  92. end
  93. end
  94. end
  95. self.update_view_id = self.model:Bind(AdventureBookModel.UPDATE_ADVENTURE_BOOK_INFO, onUpdateView)
  96. end
  97. function AdventureBookDetailView:OpenView()
  98. local book_list = self.model:GetBookListByType(self.type)
  99. if book_list and #book_list > 0 then
  100. self.totalPage = #book_list
  101. self.nowPage = 0
  102. for i, v in ipairs(book_list) do
  103. if v.subtype == self.subtype then
  104. self.nowPage = i
  105. end
  106. end
  107. self:ShowNowPage(self.nowPage)
  108. self:SetBtnState()
  109. end
  110. end
  111. function AdventureBookDetailView:ShowNowPage(nowPage)
  112. local book_list = self.model:GetBookListByType(self.type)
  113. if book_list and #book_list > 0 then
  114. local info = book_list[nowPage]
  115. if info then
  116. self.subtype = info.subtype
  117. if not self.advenItem then
  118. self.advenItem = AdventureBookDetailItem.New(self.parent, nil, self.layer_name)
  119. end
  120. self.advenItem:SetData(self.type,info)
  121. end
  122. self:SetBtnState()
  123. end
  124. end
  125. function AdventureBookDetailView:SetBtnState()
  126. self.btnLeft:SetActive(self.nowPage > 1)
  127. self.btnRight:SetActive(self.nowPage < self.totalPage)
  128. end
  129. function AdventureBookDetailView:Remove()
  130. if self.update_view_id then
  131. self.model:UnBind(self.update_view_id)
  132. self.update_view_id = nil
  133. end
  134. if self.advenItem then
  135. self.advenItem:DeleteMe()
  136. self.advenItem = nil
  137. end
  138. end