|
- -- 解散界面
- local ZiPaiRoomDismissView = class("ZiPaiRoomDismissView", 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 ZiPaiRoomDismissView:ctor(initiateUserId)
- ZiPaiRoomDismissView.super.ctor(self);
- self.m_initiateUserId = initiateUserId
- self.itemList = {}
- end
-
- function ZiPaiRoomDismissView:onEnter()
- ZiPaiRoomDismissView.super.onEnter(self)
- local ui = loadUI("zp_base/res/ui/ui_fangjian/zipai_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()
-
- local count = 1
- local PCOUNT = app.room:getActualPlayerNum()
- local dltWidth = layout:getContentSize().width/PCOUNT
- if PCOUNT == 2 then
- dltWidth = dltWidth - 120
- else
- dltWidth = dltWidth - 80
- end
- --local shift = (dltWidth-90)/4
- --桌子有坐下的人
- for nUserId, memberInfo in pairsByKeys(app.room.roomInfo.memberList) do
- if app.room:checkUserIDIsInTable(nUserId) then
- local item = import("zp_base.luaScript.Views.Room.ZPRoomDismissItem"):new(nUserId, 0)
- if PCOUNT == 2 then
- if count == 1 then
- item.ui:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 10))
- else
- item.ui:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 10))
- end
- else
- if count==1 then
- item.ui:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 10))
- elseif count==3 then
- item.ui:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 10))
- else
- item.ui:setPosition(cc.p((count-1)*dltWidth+dltWidth/2, 10))
- end
- end
- layout:addChild(item.ui)
- self.itemList[nUserId] = item
- count = count + 1
- end
- end
-
- self:bindEvent(app.room , "onDismissResponse" , handler(self , self.onDismissResponse));
- self:bindEvent(app.room , "onGameOverResponse" , handler(self , self.onGameOverResponse));
-
- self:updateButton()
-
- local nLeftTime = app.room.roomInfo.nDismissStateTime
- local timer = nLeftTime or 60
- local nTotalTime = app.room.roomInfo.nDismissToTalTime
- local totalTime = nTotalTime or 60
- if self.ui.Items.LoadingBar then
- self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
- end
-
- self.ui.Items.time:setText(tostring(totalTime))
- self.ui.Items.time:setText(tostring(timer))--数字跟着倒计时
-
- self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
- if tolua.isnull(self.ui.Items.time) then
- if self.loadingBarTimer then
- cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
- end
- return
- end
- if tolua.isnull(self.ui.Items.LoadingBar) then
- if self.loadingBarTimer then
- cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
- end
- return
- end
-
- timer = timer - 1
- if timer <= 0 then
- self.ui.Items.time:setText(tostring(0))--数字跟着倒计时
- else
- self.ui.Items.time:setText(tostring(timer))--数字跟着倒计时
- end
- if self.ui.Items.LoadingBar then
- self.ui.Items.LoadingBar:setPercent(timer/totalTime * 100)
- end
- end,1.0,false)
- end
-
- function ZiPaiRoomDismissView: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 ZiPaiRoomDismissView:onClickAgree()
- app.room:requestDismissRoom(2)
- end
-
- -- 拒绝
- function ZiPaiRoomDismissView:onClickRefuse()
- app.room:requestDismissRoom(3)
- end
-
- function ZiPaiRoomDismissView: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
- logD("ZiPaiRoomDismissView:onDismissResponse(), ", table.tostring(app.room.dismissInfo))
- 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
- logD("ZiPaiRoomDismissView:onDismissResponse(), isReplyNum = "..isReplyNum.."ActualNum = "..app.room:getActualPlayerNum())
- if isReplyNum >= app.room:getActualPlayerNum() then
- self:runDelay(1, function()
- self:removeView()
- end )
- end
- end
-
- function ZiPaiRoomDismissView:onGameOverResponse(event)
- self:removeView()
- end
-
- function ZiPaiRoomDismissView:removeView()
- app.room.roomInfo.nShowDismiss = false
- if self.loadingBarTimer then
- cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
- end
- self:removeFromParent()
- end
-
- return ZiPaiRoomDismissView;
|