源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.7 KiB

  1. PetStoryView = PetStoryView or BaseClass(BaseView)
  2. local PetStoryView = PetStoryView
  3. function PetStoryView:__init()
  4. self.base_file = "pet"
  5. self.layout_file = "PetStoryView"
  6. self.layer_name = "Activity"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.change_scene_close = true
  10. self.hide_maincancas = true
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏
  13. self.is_set_zdepth = true
  14. self.click_bg_toClose = true
  15. self.model = PetModel:getInstance()
  16. self.item_list = {}
  17. self.story_item_pos = {}--记录storyitem的y轴坐标信息,用于坐标转化
  18. self.load_callback = function ()
  19. self:LoadSuccess()
  20. self:AddEvent()
  21. end
  22. self.open_callback = function ( )
  23. self:OpenSuccess()
  24. end
  25. self.destroy_callback = function ( )
  26. self:DestroySuccess()
  27. end
  28. end
  29. function PetStoryView:Open(pet_id)
  30. self.pet_id = pet_id
  31. BaseView.Open(self)
  32. end
  33. function PetStoryView:LoadSuccess()
  34. local nodes = {
  35. "bg:img",
  36. "ScrollView/Viewport/Content","ScrollView",
  37. }
  38. self:GetChildren(nodes)
  39. -- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetPetImage("pet_story_bg"))
  40. lua_resM:setImageSprite(self, self.bg_img, "petExtra_asset","pet_story_bg")
  41. end
  42. function PetStoryView:AddEvent()
  43. end
  44. function PetStoryView:OpenSuccess()
  45. self:UpdateView()
  46. end
  47. function PetStoryView:UpdateView()
  48. local function fold_callback(fold_state,item_id)--进行折叠展开之后的回调,主要是对item位置的重置
  49. local change_pos = fold_state and -146 or 146
  50. local length_list = {}
  51. for i, v in ipairs(self.item_list) do
  52. if i<=item_id then
  53. else
  54. v:SetPosition(2.5,self.story_item_pos[i]+change_pos)
  55. self.story_item_pos[i] = self.story_item_pos[i]+change_pos
  56. end
  57. if v.fold_state then
  58. length_list[i] = 71+146
  59. else
  60. length_list[i] = 71
  61. end
  62. end
  63. -- SetSizeDeltaY(self.Content, -(self.story_item_pos[1]+self.story_item_pos[2]+self.story_item_pos[3]))
  64. SetSizeDeltaY(self.Content, length_list[1]+length_list[2]+length_list[3]+5)
  65. end
  66. for i, v in ipairs(self.item_list) do
  67. v:SetVisible(false)
  68. end
  69. for i=1,3 do
  70. local item = self.item_list[i]
  71. if item == nil then
  72. item = PetStoryItem.New(self.Content)
  73. self.item_list[i] = item
  74. end
  75. item:SetPosition(2.5,-(i-1)*71)
  76. self.story_item_pos[i] = -(i-1)*71
  77. item:SetVisible(true)
  78. item:SetData(i,self.pet_id,fold_callback)
  79. end
  80. local final_index = self.model:GetTheActiveStoryId(self.pet_id)
  81. if final_index >=1 and final_index <=3 then
  82. self.item_list[final_index]:OnClickFold()
  83. end
  84. end
  85. function PetStoryView:DestroySuccess( )
  86. for i, v in ipairs(self.item_list) do
  87. v:DeleteMe()
  88. end
  89. self.item_list = {}
  90. end