|
|
- 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
-
|