源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

104 wiersze
2.7 KiB

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