-- 主界面 local JoinRoomView = class("JoinRoomView", cc.UIView) function JoinRoomView:ctor(gameId) JoinRoomView.super.ctor(self); local ui = loadUI("res/ui/ui_dating/ui_jiarufangjian.ui"); self.ui = ui; self:addChild(ui); self.gameId = gameId; self.numbers = {}; self.images = { [0] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_0.png", [1] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_1.png", [2] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_2.png", [3] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_3.png", [4] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_4.png", [5] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_5.png", [6] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_6.png", [7] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_7.png", [8] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_8.png", [9] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_9.png", } end function JoinRoomView:onEnter() JoinRoomView.super.onEnter(self) -- 房间号图片 self.numberImage = {} self.numberImage[1] = self.ui.Items.ImageView_fangjianhao_1 self.numberImage[2] = self.ui.Items.ImageView_fangjianhao_2 self.numberImage[3] = self.ui.Items.ImageView_fangjianhao_3 self.numberImage[4] = self.ui.Items.ImageView_fangjianhao_4 self.numberImage[5] = self.ui.Items.ImageView_fangjianhao_5 self.numberImage[6] = self.ui.Items.ImageView_fangjianhao_6 -- 键盘按钮 self.numberButton = {} self.numberButton[0] = self.ui.Items.Button_10 self.numberButton[1] = self.ui.Items.Button_1 self.numberButton[2] = self.ui.Items.Button_2 self.numberButton[3] = self.ui.Items.Button_3 self.numberButton[4] = self.ui.Items.Button_4 self.numberButton[5] = self.ui.Items.Button_5 self.numberButton[6] = self.ui.Items.Button_6 self.numberButton[7] = self.ui.Items.Button_7 self.numberButton[8] = self.ui.Items.Button_8 self.numberButton[9] = self.ui.Items.Button_9 for k,v in pairs(self.numberButton) do v:registerClick(function() self:onClickNumber(k) end) end -- 重输 self.ui.Items.Button_11:registerClick(function() self:onClickReturn() end) -- 回删 self.ui.Items.Button_12:registerClick(handler(self , self.onClickBack)) -- 关闭 self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose)) -- 一键加入(手机无效) self.ui.Items.btnTest:registerClick(handler(self , self.onClickTest)) self.ui.Items.btnTest:setVisible(cc.Application:getInstance():getTargetPlatform() == 0) -- 监听事件 self:bindEvent(app.hall , "onJoinRoomResponse", handler(self , self.onJoinRoomResponse)); -- self:onClickReturn() self:restNumbers() end -- 监听事件 function JoinRoomView:onJoinRoomResponse(event) if not event then return end local errCode = event.errCode if errCode ~= 0 then local errString = ENTER_ROOM_RET_STR[errCode] or "房间不存在" showTooltip(errString); end -- self:onClickReturn(); self:restNumbers() end function JoinRoomView:restNumbers() self.numbers = {} self:updateNumbers() end -- 关闭 function JoinRoomView:onClickClose() playBtnCloseEffect() self:removeFromParent() end -- 重输 function JoinRoomView:onClickReturn() playBtnEffect() self:restNumbers() end --一键加入 function JoinRoomView:onClickTest() local n = cc.UserDefault:getInstance():getIntegerForKey("LastRoomID",0) if n == 0 then showTooltip("请先开个房间") return end self.numbers[1] = math.floor(n / 100000 % 10) self.numbers[2] = math.floor(n / 10000 % 10) self.numbers[3] = math.floor(n / 1000 % 10) self.numbers[4] = math.floor(n / 100 % 10) self.numbers[5] = math.floor(n / 10 % 10) self.numbers[6] = math.floor(n / 1 % 10) self:updateNumbers(); self:onClickOk() end -- 回删 function JoinRoomView:onClickBack() playBtnEffect() local num = #self.numbers if num <= 0 then return; end table.remove(self.numbers, num) self:updateNumbers() end -- 数字 function JoinRoomView:onClickNumber(number) playBtnEffect() if #self.numbers >= 6 then return end table.insert(self.numbers, number) self:updateNumbers() if #self.numbers >= 6 then self:onClickOk() end end function JoinRoomView:onClickOk() if not isEnableEnterRoom() then return end local str = "" for i = 1,#self.numbers do str = str..self.numbers[i] end local room_id = tonumber(str) print("用户的房间号:"..room_id) logI(tostring(self.gameId)) if self.gameId then app.hall:requestJoinRoom(self.gameId, room_id) else app.hall:queryRoomId(room_id, handler(self, self.onQueryRoomResponse)); end end function JoinRoomView:onQueryRoomResponse(gameId, roomId) if not gameId or tonumber(gameId) <= 0 then showTooltip("房间号不存在") return end local function requestJoinRoom() app.hall:requestJoinRoom(gameId, roomId) end -- 尝试进入房间 local function tryJoinRoom() local result, subGameId, missingFiles = app.subGameManager:checkGameFiles(gameId) if not result then logD("JoinRoomView::onQueryRoomResponse() 发现子游戏文件缺失,gameId = "..subGameId) for k,v in pairs(missingFiles) do logD(v); end local function onOk() app.subGameManager:clearGame(subGameId); downloadSubGame(subGameId, tryEnterRoom); end showConfirmDialog("发现文件缺失,点击确定开始修复", onOk); else requestJoinRoom(); end end -- 检查这个子游戏是否已安装 if app.subGameManager then if not app.subGameManager:isInstaller(gameId) then requestDownloadSubGame(gameId, tryJoinRoom, true) else tryJoinRoom(); end else showTooltip("SubGameManager is nil") end end -- function JoinRoomView:updateNumbers() for k,v in pairs(self.numberImage) do if self.numbers[k] then v:setVisible(true) local num = self.numbers[k] local image = self.images[num]; v:loadTexture(image); else v:setVisible(false) end end end return JoinRoomView;