-- 房间设置界面 local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef") local ZPFunctions = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions") local ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound") local xichongRoomSettingView = class("xichongRoomSettingView", cc.UIView) function xichongRoomSettingView:ctor() xichongRoomSettingView.super.ctor(self); end function xichongRoomSettingView:loadUI() local ui = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_shezhi.ui"); self.ui = ui; self:addChild(ui); end function xichongRoomSettingView:onEnter() xichongRoomSettingView.super.onEnter(self) self:loadUI() -- 关闭 self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose)) self:initMusicSlider() self:initLanguageRadioManager() self:initDesktopRadioManager() self:initHuDongDaoJu() self:initYuYin() self:initStyleRadioManager() end --- -- 初始化音乐、音效滑动条 -- @return -- function xichongRoomSettingView:initMusicSlider() --音乐 self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickYinYue)) self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music); -- 音效 self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickYinXiao)) self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound); --音乐音量 self.ui.Items.SliderMusic:setPercent(app.systemSetting.info.musicVolume * 100 or 100) self.ui.Items.SliderMusic:addEventListener(handler(self, self.onMusicVolumeClickSlider)) --音效音量 self.ui.Items.SliderEffect:setPercent(app.systemSetting.info.soundVolume * 100 or 100) self.ui.Items.SliderEffect:addEventListener(handler(self, self.onSoundVolumeClickSlider)) end --- -- 初始化方言选项 -- @return -- function xichongRoomSettingView:initLanguageRadioManager() self.languageRadioManager = import("luaScript.Tools.RadioManager"):new(); self:initRadioManagerColor(self.languageRadioManager) self.languageRadioManager:addItem(self.ui.Items.CheckBox_ChenZhou, ZPDef.GameLanguageType.FANG_YAN); self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, ZPDef.GameLanguageType.PU_TONG_HUA); local cacheLan = "LanguageType"..app.gameId local languageType = tonumber(loadUserInfo(cacheLan)) or ZPDef.GameLanguageType.PU_TONG_HUA self.languageRadioManager:setDefault(languageType) local function callback(idx) saveUserInfo(cacheLan,idx) end self.languageRadioManager:setCallback(callback) self.ui.Items.CheckBox_ChenZhou:setVisible(false) end --- -- 初始化桌布选项 -- @return -- function xichongRoomSettingView:initDesktopRadioManager() self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new() self:initRadioManagerColor(self.desktopRadioManager) local cacheGameBgPic = "gameBgPicture"..app.gameId self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_1, 1) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_2, 2) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_3, 3) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_4, 4) local defaultValue = tonumber(loadUserInfo(cacheGameBgPic)) or 1 self.desktopRadioManager:setDefault(defaultValue) self.desktopRadioManager:setCallback(function ( value ) --更换牌背 app:dispatchEvent({name = "onChangeTable", idx = value}); end) end --- -- 初始化版式 -- @param -- @return -- function xichongRoomSettingView:initStyleRadioManager( ) if not self.styleRadioManager then self.styleRadioManager = import("luaScript.Tools.RadioManager"):new() self:initRadioManagerColor(self.styleRadioManager) self.styleRadioManager:addItem(self.ui.Items.CheckBox_JingDian, ZPDef.GameStyleType.JINGDIAN) self.styleRadioManager:addItem(self.ui.Items.CheckBox_XianDai, ZPDef.GameStyleType.XIANDAI) self.styleRadioManager:setCallback(function (value) local cacheStyleKey = "gameStyleType" .. app.gameId saveUserInfo(cacheStyleKey, value) app:dispatchEvent({name = ZPDef.ZPEvent.ChangeViewType, desktopType = value}) self.ui.Items.CheckBox_JingDian:setTouchEnabled(false) self.ui.Items.CheckBox_XianDai:setTouchEnabled(false) self:runDelay(1.0, function () self.ui.Items.CheckBox_JingDian:setTouchEnabled(true) self.ui.Items.CheckBox_XianDai:setTouchEnabled(true) end) end) end local cacheStyleKey = "gameStyleType" .. app.gameId local style = loadUserInfo(cacheStyleKey) or ZPDef.GameStyleType.JINGDIAN self.styleRadioManager:setDefault(tonumber(style)) end --- -- 初始化互动道具 -- @return -- function xichongRoomSettingView:initHuDongDaoJu() local btnOpen = self.ui.Items.Button_HuDongDaoJu_Open local btnClose = self.ui.Items.Button_HuDongDaoJu_Close btnOpen:registerClick(handler(self, self.onBtnHuDongDaoJuOpenClicked)) btnClose:registerClick(handler(self, self.onBtnHuDongDaoJuCloseClicked)) self:updateHuDongDaoJu() self.ui.Items.Layout_HuDongDaoJu:setVisible(not ZPFunctions.isPropFobided()) end --- -- 刷新互动道具显示 -- @return -- function xichongRoomSettingView:updateHuDongDaoJu() local propEnable = tonumber(loadUserInfo("propEnable")) or 1 saveUserInfo("propEnable", propEnable) self.ui.Items.Button_HuDongDaoJu_Open:setVisible(propEnable ~= 1) self.ui.Items.Button_HuDongDaoJu_Close:setVisible(propEnable == 1) app:dispatchEvent({name = "EVENT_CHANGE_CHAT_ENABLED"}); end --- -- 点击打开互动道具 -- @return -- function xichongRoomSettingView:onBtnHuDongDaoJuOpenClicked() playBtnEffect() saveUserInfo("propEnable", 1) self:updateHuDongDaoJu() end --- -- 关闭互动道具 -- @return -- function xichongRoomSettingView:onBtnHuDongDaoJuCloseClicked() playBtnEffect() saveUserInfo("propEnable", 0) self:updateHuDongDaoJu() end --- -- 初始化语音 -- @return -- function xichongRoomSettingView:initYuYin() local btnOpen = self.ui.Items.Button_YuYin_Open local btnClose = self.ui.Items.Button_YuYin_Close btnOpen:registerClick(handler(self, self.onBtnYuYinOpenClicked)) btnClose:registerClick(handler(self, self.onBtnYuYinCloseClicked)) self:updateYuYin() self.ui.Items.Layout_YuYin:setVisible(not ZPFunctions.isPropFobided()) end --- -- 刷新语音显示 -- @return -- function xichongRoomSettingView:updateYuYin() local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1 saveUserInfo("voiceEnable", voiceEnable) self.ui.Items.Button_YuYin_Open:setVisible(voiceEnable ~= 1) self.ui.Items.Button_YuYin_Close:setVisible(voiceEnable == 1) app:dispatchEvent({name = "EVENT_CHANGE_CHAT_ENABLED"}); end --- -- 点击打开语音 -- @return -- function xichongRoomSettingView:onBtnYuYinOpenClicked() playBtnEffect() saveUserInfo("voiceEnable", 1) self:updateYuYin() end --- -- 关闭语音 -- @return -- function xichongRoomSettingView:onBtnYuYinCloseClicked() playBtnEffect() saveUserInfo("voiceEnable", 0) self:updateYuYin() end --- -- 初始化单选框颜色 -- @param radioManager -- @return -- function xichongRoomSettingView:initRadioManagerColor(radioManager) if not radioManager then return ; end -- local CheckBox_Nor_Color = cc.c4b(21,99,97, 255) -- local CheckBox_Sel_Color = cc.c4b(213,46,11, 255) -- radioManager:setNormalColor(CheckBox_Nor_Color) -- radioManager:setSelectColor(CheckBox_Sel_Color) end --- -- 关闭 -- @return -- function xichongRoomSettingView:onClickClose() playBtnEffect() self:removeFromParent() end --- -- 音乐 -- @return -- function xichongRoomSettingView:onClickYinYue() app.systemSetting.info.music = self.ui.Items.CheckBox_Music:getSelectedState(); app.systemSetting:save() end --- -- 音效 -- @return -- function xichongRoomSettingView:onClickYinXiao() app.systemSetting.info.sound = self.ui.Items.CheckBox_Effect:getSelectedState(); app.systemSetting:save() app:dispatchEvent({name = "onChangeYinXiao"}); end --- -- 音乐音量设置回调 -- @return -- function xichongRoomSettingView:onMusicVolumeClickSlider() local percent = self.ui.Items.SliderMusic:getPercent(); local curValue = percent / 100; app.systemSetting.info.musicVolume = curValue; app.systemSetting:save() end --- -- 音效音量设置回调 -- @return -- function xichongRoomSettingView:onSoundVolumeClickSlider() local percent = self.ui.Items.SliderEffect:getPercent(); local curValue = percent / 100; app.systemSetting.info.soundVolume = curValue; app.systemSetting:save() end return xichongRoomSettingView;