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.

142 wiersze
4.0 KiB

  1. -- 解散界面
  2. local MJRoomDismissItem = MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDismissItem")
  3. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  4. local MJRoomDismissView = class("MJRoomDismissView", cc.UIView)
  5. local function getUserNameById(userId)
  6. local userInfo = app.room:getUserInfo(userId)
  7. if not userInfo then return end
  8. local userName = userInfo.nickname or tostring(userId)
  9. return userName
  10. end
  11. function MJRoomDismissView:ctor(initiateUserId)
  12. MJRoomDismissView.super.ctor(self);
  13. self.m_initiateUserId = initiateUserId
  14. self.itemList = {}
  15. end
  16. function MJRoomDismissView:onEnter()
  17. MJRoomDismissView.super.onEnter(self)
  18. local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_jiesan.ui");
  19. self.ui = ui;
  20. self:addChild(ui);
  21. --谁申请解散
  22. local initiateUserName = getUserNameById(self.m_initiateUserId)
  23. initiateUserName = getSubStringNickname(initiateUserName,self.ui.Items.Text)
  24. self.ui.Items.Text:setText("["..initiateUserName.."]")
  25. -- 同意
  26. self.ui.Items.Button_1:registerClick(handler(self , self.onClickAgree))
  27. -- 拒绝
  28. self.ui.Items.Button_2:registerClick(handler(self , self.onClickRefuse))
  29. local layout = self.ui.Items.Layout_3
  30. layout:removeAllChildren()
  31. --桌子有坐下的人
  32. for nUserId, memberInfo in pairsByKeys(app.room.roomInfo.memberList) do
  33. local item = MJRoomDismissItem:new(nUserId, 0)
  34. layout:addChild(item.ui)
  35. self.itemList[nUserId] = item
  36. end
  37. self:bindEvent(app.room , MJDefine.MJEvent.DismissResponse , handler(self , self.onDismissResponse));
  38. self:bindEvent(app.room , MJDefine.MJEvent.DismissClose , handler(self , self.onDismissCloseResponse));
  39. self:updateButton()
  40. local timer = app.room.roomInfo.nDismissStateTime or 60
  41. local totalTime = app.room.roomInfo.nDismissToTalTime or 60
  42. if self.ui.Items.LoadingBar then
  43. self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
  44. end
  45. self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  46. timer = timer - 1
  47. if self.ui.Items.LoadingBar then
  48. self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
  49. end
  50. end,1.0,false)
  51. end
  52. function MJRoomDismissView:updateButton()
  53. local myUserId = app.room.roomInfo.nUserId
  54. if app.room.dismissInfo[myUserId] and app.room.dismissInfo[myUserId] ~= 0 or self.m_initiateUserId == myUserId then
  55. -- 我已经选择过了或者我是发起申请的那个
  56. self.ui.Items.Button_1:setVisible(false)
  57. self.ui.Items.Button_2:setVisible(false)
  58. else
  59. -- 我还没选择
  60. self.ui.Items.Button_1:setVisible(true)
  61. self.ui.Items.Button_2:setVisible(true)
  62. end
  63. if app.room.isOnLooker then
  64. self.ui.Items.Button_1:setVisible(false)
  65. self.ui.Items.Button_2:setVisible(false)
  66. self.ui.Items.Text_onLooker:setVisible(true)
  67. else
  68. self.ui.Items.Text_onLooker:setVisible(false)
  69. end
  70. end
  71. -- 同意
  72. function MJRoomDismissView:onClickAgree()
  73. playBtnEffect()
  74. app.room:requestDismissRoom(2)
  75. end
  76. -- 拒绝
  77. function MJRoomDismissView:onClickRefuse()
  78. playBtnEffect()
  79. app.room:requestDismissRoom(3)
  80. end
  81. function MJRoomDismissView:onDismissResponse(event)
  82. self:updateButton()
  83. for id,op in pairs(app.room.dismissInfo) do
  84. local item = self.itemList[id]
  85. if item then
  86. item:updateStatus();
  87. end
  88. end
  89. -- 房间内的人全都回复过了
  90. local isReplyNum = 0
  91. for _, operateType in pairs(app.room.dismissInfo) do
  92. if operateType == 1 or operateType == 2 or operateType == 3 then
  93. isReplyNum = isReplyNum + 1
  94. if operateType == 3 then
  95. self:runDelay(1, function()
  96. self:removeView()
  97. end )
  98. end
  99. end
  100. end
  101. if isReplyNum >= table.nums(app.room.roomInfo.memberList) then
  102. self:runDelay(1, function()
  103. self:removeView()
  104. end )
  105. end
  106. end
  107. function MJRoomDismissView:onDismissCloseResponse(event)
  108. self:removeView()
  109. end
  110. function MJRoomDismissView:removeView()
  111. app.room.roomInfo.nShowDismiss = false
  112. if self.loadingBarTimer then
  113. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
  114. end
  115. self:removeFromParent()
  116. end
  117. return MJRoomDismissView;