源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

167 行
4.1 KiB

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