PetStoryView = PetStoryView or BaseClass(BaseView)
|
|
local PetStoryView = PetStoryView
|
|
|
|
function PetStoryView:__init()
|
|
self.base_file = "pet"
|
|
self.layout_file = "PetStoryView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true
|
|
self.change_scene_close = true
|
|
self.hide_maincancas = true
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.is_set_zdepth = true
|
|
self.click_bg_toClose = true
|
|
|
|
self.model = PetModel:getInstance()
|
|
self.item_list = {}
|
|
self.story_item_pos = {}--记录storyitem的y轴坐标信息,用于坐标转化
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function PetStoryView:Open(pet_id)
|
|
self.pet_id = pet_id
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function PetStoryView:LoadSuccess()
|
|
local nodes = {
|
|
"bg:img",
|
|
"ScrollView/Viewport/Content","ScrollView",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
-- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetPetImage("pet_story_bg"))
|
|
lua_resM:setImageSprite(self, self.bg_img, "petExtra_asset","pet_story_bg")
|
|
|
|
end
|
|
|
|
function PetStoryView:AddEvent()
|
|
|
|
end
|
|
|
|
function PetStoryView:OpenSuccess()
|
|
self:UpdateView()
|
|
end
|
|
|
|
function PetStoryView:UpdateView()
|
|
local function fold_callback(fold_state,item_id)--进行折叠展开之后的回调,主要是对item位置的重置
|
|
local change_pos = fold_state and -146 or 146
|
|
local length_list = {}
|
|
for i, v in ipairs(self.item_list) do
|
|
if i<=item_id then
|
|
|
|
else
|
|
v:SetPosition(2.5,self.story_item_pos[i]+change_pos)
|
|
self.story_item_pos[i] = self.story_item_pos[i]+change_pos
|
|
end
|
|
if v.fold_state then
|
|
length_list[i] = 71+146
|
|
else
|
|
length_list[i] = 71
|
|
end
|
|
end
|
|
-- SetSizeDeltaY(self.Content, -(self.story_item_pos[1]+self.story_item_pos[2]+self.story_item_pos[3]))
|
|
SetSizeDeltaY(self.Content, length_list[1]+length_list[2]+length_list[3]+5)
|
|
end
|
|
for i, v in ipairs(self.item_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
for i=1,3 do
|
|
local item = self.item_list[i]
|
|
if item == nil then
|
|
item = PetStoryItem.New(self.Content)
|
|
self.item_list[i] = item
|
|
end
|
|
item:SetPosition(2.5,-(i-1)*71)
|
|
self.story_item_pos[i] = -(i-1)*71
|
|
item:SetVisible(true)
|
|
item:SetData(i,self.pet_id,fold_callback)
|
|
end
|
|
|
|
local final_index = self.model:GetTheActiveStoryId(self.pet_id)
|
|
if final_index >=1 and final_index <=3 then
|
|
self.item_list[final_index]:OnClickFold()
|
|
end
|
|
end
|
|
|
|
function PetStoryView:DestroySuccess( )
|
|
for i, v in ipairs(self.item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.item_list = {}
|
|
end
|