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