-- 解散界面 local MJRoomDismissItem = MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDismissItem") local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJRoomDismissView = class("MJRoomDismissView", cc.UIView) local function getUserNameById(userId) local userInfo = app.room:getUserInfo(userId) if not userInfo then return end local userName = userInfo.nickname or tostring(userId) return userName end function MJRoomDismissView:ctor(initiateUserId) MJRoomDismissView.super.ctor(self); self.m_initiateUserId = initiateUserId self.itemList = {} end function MJRoomDismissView:onEnter() MJRoomDismissView.super.onEnter(self) local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_jiesan.ui"); self.ui = ui; self:addChild(ui); --谁申请解散 local initiateUserName = getUserNameById(self.m_initiateUserId) initiateUserName = getSubStringNickname(initiateUserName,self.ui.Items.Text) self.ui.Items.Text:setText("["..initiateUserName.."]") -- 同意 self.ui.Items.Button_1:registerClick(handler(self , self.onClickAgree)) -- 拒绝 self.ui.Items.Button_2:registerClick(handler(self , self.onClickRefuse)) local layout = self.ui.Items.Layout_3 layout:removeAllChildren() --桌子有坐下的人 for nUserId, memberInfo in pairsByKeys(app.room.roomInfo.memberList) do local item = MJRoomDismissItem:new(nUserId, 0) layout:addChild(item.ui) self.itemList[nUserId] = item end self:bindEvent(app.room , MJDefine.MJEvent.DismissResponse , handler(self , self.onDismissResponse)); self:bindEvent(app.room , MJDefine.MJEvent.DismissClose , handler(self , self.onDismissCloseResponse)); self:updateButton() local timer = app.room.roomInfo.nDismissStateTime or 60 local totalTime = app.room.roomInfo.nDismissToTalTime or 60 if self.ui.Items.LoadingBar then self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100) end self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function() timer = timer - 1 if self.ui.Items.LoadingBar then self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100) end end,1.0,false) end function MJRoomDismissView:updateButton() local myUserId = app.room.roomInfo.nUserId if app.room.dismissInfo[myUserId] and app.room.dismissInfo[myUserId] ~= 0 or self.m_initiateUserId == myUserId then -- 我已经选择过了或者我是发起申请的那个 self.ui.Items.Button_1:setVisible(false) self.ui.Items.Button_2:setVisible(false) else -- 我还没选择 self.ui.Items.Button_1:setVisible(true) self.ui.Items.Button_2:setVisible(true) end if app.room.isOnLooker then self.ui.Items.Button_1:setVisible(false) self.ui.Items.Button_2:setVisible(false) self.ui.Items.Text_onLooker:setVisible(true) else self.ui.Items.Text_onLooker:setVisible(false) end end -- 同意 function MJRoomDismissView:onClickAgree() playBtnEffect() app.room:requestDismissRoom(2) end -- 拒绝 function MJRoomDismissView:onClickRefuse() playBtnEffect() app.room:requestDismissRoom(3) end function MJRoomDismissView:onDismissResponse(event) self:updateButton() for id,op in pairs(app.room.dismissInfo) do local item = self.itemList[id] if item then item:updateStatus(); end end -- 房间内的人全都回复过了 local isReplyNum = 0 for _, operateType in pairs(app.room.dismissInfo) do if operateType == 1 or operateType == 2 or operateType == 3 then isReplyNum = isReplyNum + 1 if operateType == 3 then self:runDelay(1, function() self:removeView() end ) end end end if isReplyNum >= table.nums(app.room.roomInfo.memberList) then self:runDelay(1, function() self:removeView() end ) end end function MJRoomDismissView:onDismissCloseResponse(event) self:removeView() end function MJRoomDismissView:removeView() app.room.roomInfo.nShowDismiss = false if self.loadingBarTimer then cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer) end self:removeFromParent() end return MJRoomDismissView;