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