|
- ---
- -- ================================================================
- -- 文件名: PKRoomMenuView.lua
- -- 描述: 房间内右上角菜单组件
- -- 版权: Copyright © 2016-2019 公司名称 版权所有
- -- 作者: Administrator
- -- 创建日期: 2019-12-13
- -- 更新日期: 2019-12-13
- -- 备注:
- -- ================================================================
- --
- -- local PKRoomSettingView=ZPFramework.ZPImport("zp_base.luaScript.Views.Room.PKRoomSettingView")
-
- local PKRoomMenuView = class("PKRoomMenuView", cc.UIView);
-
- function PKRoomMenuView:ctor ()
- PKRoomMenuView.super.ctor(self)
- self._isOpened = false;
- self._buttonEvent = {}
- end
-
- function PKRoomMenuView:loadUI ()
- local ui = loadUI("pk_base/res/ui/ui_fangjian/pk_ui_room_menu.ui");
- self:addChild(ui);
- self.ui = ui;
- end
-
- function PKRoomMenuView:onEnter ()
- PKRoomMenuView.super.onEnter(self)
- self:loadUI()
- self:initViews()
- self:initEvents();
- end
-
- function PKRoomMenuView:initViews ()
- self.ui.Items.Button_Menu:registerClick(handler(self, self._onBtnMenuClicked))
- self.ui.Items.Button_Dismiss:registerClick(handler(self, self._onBtnDismissClicked))
- self.ui.Items.Button_Set:registerClick(handler(self, self._onBtnSetClicked))
- self.ui.Items.Button_Leave:registerClick(handler(self, self._onBtnLeaveClicked))
- self.ui.Items.Layout_Mask:registerClick(handler(self, self._onLayoutMaskClicked))
- self.ui.Items.Button_Club:registerClick(handler(self , self._onBtnClubClicked))
- self.ui.Items.Button_Wechat:registerClick(handler(self , self._onBtnWechatClicked))
- self.ui.Items.Button_ScreenShot:registerClick(handler(self , self._onBtnScreenShotClicked))
-
- self.ui.Items.Layout_Menu:setTouchEnabled(true)
-
- self.ui.Items.Layout_Menu:setVisible(false)
- self.ui.Items.Layout_Mask:setVisible(false)
- self.ui.Items.Button_Club:setVisible(app.club_php.clubID and app.club_php.clubID ~= 0)
-
- local isGameStart = app.room.roomInfo.nGameStartCount > 0
- self.ui.Items.Button_Leave:setEnabled(not isGameStart);
-
- self:setButtonVisible("Wechat", false)
- self:setButtonVisible("ScreenShot", false)
-
- self:checkCanDismiss()
- end
- ---
- -- 初始化事件
- --
- function PKRoomMenuView:initEvents()
- self:bindEvent(app.room, "onResponseGameStart", handler(self, self.onResponseGameStart));
- end
- ---
- -- 遮罩层点击事件
- -- @return
- --
- function PKRoomMenuView:_onLayoutMaskClicked ()
- logD("PKRoomMenuView:_onLayoutMaskClicked")
- playBtnEffect()
- if not self._isOpened then
- return
- end
- self:toggleMenu()
- end
- ---
- -- 菜单按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnMenuClicked ()
- logD("PKRoomMenuView:_onBtnMenuClicked")
- playBtnEffect()
- self:toggleMenu()
- end
- ---
- -- 解散按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnDismissClicked ()
- logD("PKRoomMenuView:_onBtnDismissClicked")
- playBtnEffect()
-
- if self._buttonEvent["Dismiss"] then
- self._buttonEvent["Dismiss"]()
- return
- end
-
- local function onClickOk()
- app.room:requestDismissRoom(1)
- end
- local function onClickCancel()
- end
- showConfirmDialog("确定要申请解散房间吗?", onClickOk, onClickCancel)
- app:dispatchEvent({name = "EVENT_ROOM_MENU_DISMISS_CLICKED"})
-
- self:toggleMenu()
- end
- ---
- -- 设置按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnSetClicked ()
- logD("PKRoomMenuView:_onBtnSetClicked")
- playBtnEffect()
-
- if self._buttonEvent["Set"] then
- self._buttonEvent["Set"]()
- return
- end
-
- -- local view = PKRoomSettingView:new();
- -- view:setAnchorPoint(cc.p(0.5, 0.5));
- -- app:showWaitDialog(view);
- app:dispatchEvent({name = "EVENT_ROOM_MENU_SET_CLICKED"})
-
- self:toggleMenu()
- end
- ---
- -- 离开按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnLeaveClicked ()
- logD("PKRoomMenuView:_onBtnLeaveClicked")
- playBtnEffect()
-
- if app.room.roomInfo.nGameStartCount > 0 then
- self.ui.Items.Button_Leave:setEnabled(false);
- showTooltip("正在游戏中,不可以退出游戏!");
- return
- end
-
- if self._buttonEvent["Leave"] then
- self._buttonEvent["Leave"]()
- return
- end
-
- app.room.roomInfo.bQuitRoom = true; -- 这个字段碰胡用到,兼容,后面看能不能删除
- self.ui:sendMsg(app.room, "callLeaveRequest");
- app:dispatchEvent({name = "EVENT_ROOM_MENU_LEAVE_CLICKED"})
-
- self:toggleMenu()
- end
- ---
- -- 包间按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnClubClicked ()
- logD("PKRoomMenuView:_onBtnClubClicked")
- playBtnEffect()
-
- if self._buttonEvent["Club"] then
- self._buttonEvent["Club"]()
- return
- end
-
- openClub()
- end
- ---
- -- 微信按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnWechatClicked ()
- playBtnEffect()
-
- if self._buttonEvent["Wechat"] then
- self._buttonEvent["Wechat"]()
- return
- end
-
- app.plugin:gotoWeiXin()
- end
- ---
- -- 截图按钮点击事件
- -- @return
- --
- function PKRoomMenuView:_onBtnScreenShotClicked ()
- playBtnEffect()
-
- if self._buttonEvent["ScreenShot"] then
- self._buttonEvent["ScreenShot"]()
- return
- end
-
- showScreenShot()
- end
- ---
- -- 开关菜单按钮
- -- @param
- -- @return
- --
- function PKRoomMenuView:toggleMenu( )
- self._isOpened = not self._isOpened
- self.ui.Items.Layout_Menu:setVisible(self._isOpened)
- self.ui.Items.Layout_Mask:setVisible(self._isOpened)
- end
- ---
- -- 禁用/启用指定按钮
- -- @param key 按钮索引,分别是Dismiss(解散)、Leave(退出)、Set(设置)、Wechat(微信)、ScreenShot(截图分享)
- -- @param isEnabled
- -- @return
- --
- function PKRoomMenuView:setButtonEnabled (key, isEnabled)
- local button = nil
- if key == "Dismiss" then
- button = self.ui.Items.Button_Dismiss
- elseif key == "Leave" then
- button = self.ui.Items.Button_Leave
- elseif key == "Set" then
- button = self.ui.Items.Button_Set
- elseif key == "Wechat" then
- button = self.ui.Items.Button_Wechat
- elseif key == "ScreenShot" then
- button = self.ui.Items.Button_ScreenShot
- end
- button:setEnabled(isEnabled)
- end
- ---
- -- 显示/隐藏指定按钮
- -- @param key 按钮索引,分别是Dismiss(解散)、Leave(退出)、Set(设置)、Wechat(微信)、ScreenShot(截图分享)
- -- @param isEnabled
- -- @return
- --
- function PKRoomMenuView:setButtonVisible (key, isVisible)
- local butotn = nil
- if key == "Dismiss" then
- button = self.ui.Items.Button_Dismiss
- elseif key == "Leave" then
- button = self.ui.Items.Button_Leave
- elseif key == "Set" then
- button = self.ui.Items.Button_Set
- elseif key == "Wechat" then
- button = self.ui.Items.Button_Wechat
- elseif key == "ScreenShot" then
- button = self.ui.Items.Button_ScreenShot
- end
- button:setVisible(isVisible)
- end
- ---
- -- 自定义按钮事件
- -- @param key 按钮索引,分别是Dismiss(解散)、Leave(退出)、Set(设置)、Wechat(微信)、ScreenShot(截图分享)
- -- @param func
- -- @return
- --
- function PKRoomMenuView:setButtonEvent (key, func)
- if type(func) ~= "function" then
- return
- end
-
- self._buttonEvent[key] = func
- end
- ---
- -- 检测是否可以解散房间
- -- @param
- -- @return
- --
- function PKRoomMenuView:checkCanDismiss( )
- local onCanDismissCallback = function (info)
- local nUserId = app.room:getMyUserId()
- local roomInfo = app.room.roomInfo or {}
- local canDismiss = (tonumber(info.canDismiss or 1) == 1) or roomInfo.nRoomOwnedUid == nUserId or dd.IClub.isAdmin()
- if roomInfo.nGameStartCount == 0 and roomInfo.nRoomOwnedUid ~= nUserId then
- canDismiss = false
- end
- self:onCanDismissCallback(canDismiss)
- end
-
- if dd.IClub.getCanDismiss then
- local canDismiss = dd.IClub.getCanDismiss(onCanDismissCallback)
- if canDismiss then
- onCanDismissCallback({canDismiss = canDismiss})
- end
- end
- end
-
- function PKRoomMenuView:onCanDismissCallback(canDismiss)
- if self.ui.Items.Button_Dismiss then
- self.ui.Items.Button_Dismiss:setEnabled(canDismiss)
- end
- end
- ---
- -- 牌局开始,检测是否可以解散房间
- --
- function PKRoomMenuView:onResponseGameStart()
- self:checkCanDismiss();
-
- local isGameStart = app.room.roomInfo.nGameStartCount > 0
- self.ui.Items.Button_Leave:setEnabled(not isGameStart);
- end
-
- return PKRoomMenuView
|