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.

152 lines
4.2 KiB

  1. --[[
  2. 茶馆官方活动界面
  3. --]]
  4. local ClubOfficialActivityView = class("ClubOfficialActivityView", cc.UIView)
  5. local COLOR_ITEM_SELECTED = cc.c3b(179,69,12);
  6. local COLOR_ITEM_NORMAL = cc.c3b(49,67,81);
  7. function ClubOfficialActivityView:ctor(data)
  8. ClubOfficialActivityView.super.ctor(self)
  9. -- 当前正在显示的活动
  10. self.curShowActivityView = {}
  11. self.ui = loadUI("res/ui/ui_club/ui_club_common_activity.ui")
  12. self:addChild(self.ui)
  13. self.ui.Items.ImageView_activity:setVisible(false)
  14. self.activityList = data
  15. --活动图片名
  16. self.fileName = {}
  17. --预加载资源
  18. -- cc.SpriteFrameCache:getInstance():addSpriteFramesWithFile("res/ui/zy_club/club_common/club_common.plist");
  19. end
  20. function ClubOfficialActivityView:onEnter()
  21. ClubOfficialActivityView.super.onEnter(self)
  22. self.ui.Items.Button_Close:registerClick(handler(self, self.onClickClose))
  23. --self:bindEvent(app, "onGetActivityInfoResponse", handler(self, self.updateView))
  24. self:updateView()
  25. end
  26. function ClubOfficialActivityView:updateView()
  27. -- self.activityList = app.club_php.clubofficialActivityList[self.ClubInfo.gid]
  28. if not self.activityList then
  29. return
  30. end
  31. local tActivityBtn = self.ui.Items.Button_Activity:getCopied()
  32. self.ui.Items.ScrollView:getInnerContainer():setAutoSize(true)
  33. self.ui.Items.ScrollView:removeAllChildren()
  34. self.CheckList = {}
  35. local activityMax = table.nums(self.activityList)
  36. local index = 0
  37. local firstBtn
  38. for i ,v in pairs(self.activityList) do
  39. index = index + 1
  40. local activityBtn = tActivityBtn:getCopied()
  41. activityBtn.Items = getUIItems(activityBtn);
  42. activityBtn.Items.title:setText(v.tname)--活动名称
  43. activityBtn:setTag(v.type)--活动id
  44. activityBtn:registerClick(handler(self , self.onClickItem))
  45. if index == 1 then
  46. firstBtn = activityBtn
  47. end
  48. self.ui.Items.ScrollView:addChild(activityBtn)
  49. self.CheckList[index] = activityBtn
  50. local urlfile1, time1 = convertIconUrl(v.img);
  51. --local urlfile2, time2 = convertIconUrl(self.attyData.ext.share_pic);
  52. self.fileName[i] = getImageNameFromUrl(urlfile1)
  53. --self.fileName2 = getImageNameFromUrl(urlfile2)
  54. local fullPath = cc.FileUtils:getInstance():getWritablePath()..self.fileName[i];
  55. local isExist = cc.FileSystem:fileExists(fullPath)
  56. if (not isExist) then
  57. getImageFromUrlWithTime(v.img, self.fileName[i], nil, function()
  58. if index == activityMax then
  59. --self:setActivityImage()
  60. self:onClickItem(firstBtn, false)
  61. end
  62. end)
  63. else
  64. --self:setActivityImage()
  65. self:onClickItem(firstBtn, false)
  66. end
  67. end
  68. self.ui.Items.ScrollView:jumpToTopOnSizeChanged();
  69. end
  70. function ClubOfficialActivityView:setActivityImage(id)
  71. local texture = loadTextureFromFile(self.fileName[id])
  72. if not texture then
  73. self:removeFromParent()
  74. return
  75. end
  76. self.ui.Items.ImageView_activity:setTexture2(texture)
  77. self.ui.Items.ImageView_activity:setVisible(true)
  78. end
  79. function ClubOfficialActivityView:onClickClose()
  80. playBtnCloseEffect()
  81. self:removeFromParent()
  82. end
  83. function ClubOfficialActivityView:onClickItem(event, isTouch)
  84. if isTouch ~= false then
  85. playBtnTagEffect()
  86. end
  87. self:restoreAllActivityBtn()
  88. --event:setBright(false)
  89. --判断节点是否存在
  90. if not tolua.isnull(event) then
  91. event:loadTextureNormal("res/ui/zy_dating/chuanjian/chuangjian_btn_sel.png")
  92. local tag = event:getTag()
  93. self:setActivityImage(tag)
  94. self:refreshItemState(tag);
  95. end
  96. end
  97. function ClubOfficialActivityView:refreshItemState (tag)
  98. for k, v in ipairs(self.CheckList or {}) do
  99. if not tolua.isnull(v) then
  100. local color = v:getTag() == tag and COLOR_ITEM_SELECTED or COLOR_ITEM_NORMAL;
  101. v.Items.title:setColor(color);
  102. end
  103. end
  104. end
  105. --复原所有活动按钮
  106. function ClubOfficialActivityView:restoreAllActivityBtn()
  107. if self.CheckList and table.nums(self.CheckList) > 0 then
  108. for i,v in pairsByKeys(self.CheckList) do
  109. --判断节点是否存在
  110. if not tolua.isnull(v) then
  111. v:loadTextureNormal("res/ui/zy_dating/chuanjian/chuangjian_btn_nor.png")
  112. end
  113. end
  114. end
  115. --[[local childs = self.ui.Items.ScrollView:getChildren()
  116. if childs and table.nums(childs) > 0 then
  117. for i,v in pairs(self.ui.Items.ScrollView:getChildren()) do
  118. --v:setBright(true)
  119. v:loadTextureNormal("club_common_img_left_nor.png", cc.TextureResType.plistType)
  120. end
  121. end--]]
  122. end
  123. return ClubOfficialActivityView;