AdventureBookDetailView = AdventureBookDetailView or BaseClass(BaseView) local AdventureBookDetailView = AdventureBookDetailView function AdventureBookDetailView:__init() self.base_file = "adventureBook" self.layout_file = "AdventureBookDetailView" self.layer_name = "UI" self.append_to_ctl_queue = true self.use_background = true self.model = AdventureBookModel:getInstance() self.totalPage = 0 --总页数 self.nowPage = 0 --当前位置索引 self.close_fog = true self.load_callback = function() self:LoadSuccess() end self.open_callback = function() self:OpenView(true) end self.close_callback = function() if self.model.need_find_way then GuideModel:getInstance():BeginTask(self.layout_file) end end self.destroy_callback = function() self:Remove() end end function AdventureBookDetailView:Open(type, subtype) self.type = type self.subtype = subtype BaseView.Open(self) end function AdventureBookDetailView:LoadSuccess() self.transform.localPosition = Vector3.zero self.transform.sizeDelta = Vector3.zero if ClientConfig.iphone_x_model then self.transform.offsetMin = Vector2(ClientConfig.iphone_x_offset_left,0) self.transform.offsetMax = Vector2(-ClientConfig.iphone_x_offset_right,0) end self.bg = self:GetChildImages({ "bg" }) self.bg.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight) lua_resM:setOutsideImageSprite(self,self.bg,GameResPath.GetJpgImage("zjui_bg.jpg")) self.btnLeft, self.btnRight, self.backBtn, self.closeBtn = self:GetChildGameObjects({ "leftBtn", "rightBtn", "backBtn", "closeBtn" }) self.parent = self:GetChildTransforms({ "itemParent" }) self:InitEvent() end function AdventureBookDetailView:BtnCall( ) GlobalEventSystem:Fire(EventName.OPEN_ADVENTURE_BOOK_VIEW, false, self.type) self:Close() end function AdventureBookDetailView:InitEvent() local function clickHandler(target) if target == self.btnLeft then if self.nowPage > 1 then self.nowPage = self.nowPage - 1 self:ShowNowPage(self.nowPage) end elseif target == self.btnRight then if self.nowPage < self.totalPage then self.nowPage = self.nowPage + 1 self:ShowNowPage(self.nowPage) end elseif target == self.backBtn then self:Close() GlobalEventSystem:Fire(EventName.OPEN_ADVENTURE_BOOK_VIEW, true, self.type) elseif target == self.closeBtn then self:BtnCall() end end AddClickEvent(self.backBtn, clickHandler, 1) AddClickEvent(self.closeBtn, clickHandler, 1) AddClickEvent(self.btnLeft, clickHandler,LuaSoundManager.SOUND_UI.SWITCH) AddClickEvent(self.btnRight, clickHandler,LuaSoundManager.SOUND_UI.SWITCH) local function onUpdateView(type, subtype) if self.type and self.type == type then local book_list = self.model:GetBookListByType(self.type) if #book_list - self.totalPage > 0 then --激活的书本增加,刷新界面 self.subtype = subtype self:OpenView() end end end self.update_view_id = self.model:Bind(AdventureBookModel.UPDATE_ADVENTURE_BOOK_INFO, onUpdateView) end function AdventureBookDetailView:OpenView() local book_list = self.model:GetBookListByType(self.type) if book_list and #book_list > 0 then self.totalPage = #book_list self.nowPage = 0 for i, v in ipairs(book_list) do if v.subtype == self.subtype then self.nowPage = i end end self:ShowNowPage(self.nowPage) self:SetBtnState() end end function AdventureBookDetailView:ShowNowPage(nowPage) local book_list = self.model:GetBookListByType(self.type) if book_list and #book_list > 0 then local info = book_list[nowPage] if info then self.subtype = info.subtype if not self.advenItem then self.advenItem = AdventureBookDetailItem.New(self.parent, nil, self.layer_name) end self.advenItem:SetData(self.type,info) end self:SetBtnState() end end function AdventureBookDetailView:SetBtnState() self.btnLeft:SetActive(self.nowPage > 1) self.btnRight:SetActive(self.nowPage < self.totalPage) end function AdventureBookDetailView:Remove() if self.update_view_id then self.model:UnBind(self.update_view_id) self.update_view_id = nil end if self.advenItem then self.advenItem:DeleteMe() self.advenItem = nil end end