|
|
- --喇叭界面
- HornView = HornView or BaseClass(BaseView)
- function HornView:__init()
- self.base_file = "chat"
- self.layout_file = "hornView"
- self.layer_name = "UI"
- self.use_background = true
- self.click_bg_toClose = true
- self.change_scene_close = true
- self.destroy_imm = true
- self.is_set_zdepth = true
- self.model = ChatModel:getInstance()
- self.info = nil
- self:SetSendFormat(self.model:GetChannelWithId(ChatModel.CHANNEL_HORN))
- self.horn_id = 38050001
- self.load_callback = function ()
- self.model.horn_view_is_open = true
- self:LoadSuccess()
- self:InitInfo()
- self:InitEvent()
- end
- self.destroy_callback = function ()
- self.model.horn_view_is_open = false
- self:Clear()
- end
- end
-
- function HornView:Clear()
- if self.select_faceItem_id then
- self.model:UnBind(self.select_faceItem_id)
- self.select_faceItem_id = nil
- end
- if self.select_textFaceItem_id then
- self.model:UnBind(self.select_textFaceItem_id)
- self.select_textFaceItem_id = nil
- end
- if self.update_horn_num_id then
- GoodsModel:getInstance():UnBind(self.update_horn_num_id)
- self.update_horn_num_id = nil
- end
- if self.horn_event_id then
- self.model:UnBind(self.horn_event_id)
- self.horn_event_id = nil
- end
- end
-
- function HornView:LoadSuccess()
- self.faceBtn = self:GetChild("faceBtn").gameObject
- self.addBtn = self:GetChild("addBtn").gameObject
- self.sendBtn = self:GetChild("sendBtn").gameObject
- self.cancelBtn = self:GetChild("cancelBtn").gameObject
- self.hasHorn = self:GetChild("hasHorn"):GetComponent("Text")
- self.curHorn = self:GetChild("curHorn"):GetComponent("Text")
- self.input_text = self:GetChild("TextInput"):GetComponent("InputField")
- end
-
- --设置发送的格式
- function HornView:SetSendFormat(info)
- self.send_interval = info.send_interval
- self.send_limit = info.send_limit
- self.need_level = info.level
- end
-
- function HornView:InitEvent()
- local function onBtnClickHandler(target)
- if target == self.faceBtn then
- GlobalEventSystem:Fire(EventName.OPEN_INDIVIDUATION_VIEW,self.model.curr_individuation_bar_index)
- elseif target == self.sendBtn then
- if self:GetHornNum() > 0 then
- local vo = RoleManager.Instance:GetMainRoleVo()
- local mainRole_level = vo.level
- if mainRole_level < self.need_level then
- Message.show("等级不足,需要等级达到" .. self.need_level .."级")
- return
- end
-
- if self.model:CheckCurrentTimeCanSend(ChatModel.CHANNEL_HORN,self.send_interval) then
- local content = self.input_text.text
- local _, title_filter = LanguageFilter.FilterMsg(content)
- if title_filter == false then
- Message.show("内容有敏感词")
- return
- end
- if content and content ~= "" then
- self.model:Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_HORN,content,nil,nil,ChatModel.CHAT_COMMON_TYPE.COMMON)
- self.input_text.text = ""
- self:Close()
- end
- else
- Message.show("发送频率过快,请销后再试...")
- end
- else
- Message.show("喇叭数量不够,可在商城购买")
- end
- elseif target == self.cancelBtn then
- self:Close()
- elseif target == self.addBtn then
- GlobalEventSystem:Fire(EventName.OPEN_SHOP_VIEW, 2, self.horn_id)
- end
- end
- AddClickEvent(self.addBtn,onBtnClickHandler,2)
- AddClickEvent(self.faceBtn,onBtnClickHandler,2)
- AddClickEvent(self.sendBtn,onBtnClickHandler,2)
- AddClickEvent(self.cancelBtn,onBtnClickHandler,2)
-
- local function onSelectFaceItemHandler(item)
- if item then
- local str = "<#f_"..(item.index - 1)..">"
- local newStr = self.input_text.text .. str
- if utf8len(newStr) > self.send_limit then
- Message.show(string.format("最多可输入%d个字符", self.send_limit))
- else
- self.input_text.text = newStr
- end
- end
- end
- self.select_faceItem_id = self.model:Bind(ChatModel.SELECT_FACE_ITEM,onSelectFaceItemHandler)
-
- local function onSelectTextFaceItemHandler(item)
- if item then
- local newStr = string.gsub(item.vo.one,"#N",RoleManager.Instance:GetMainRoleVo().name)
- if utf8len(newStr) > self.send_limit then
- Message.show(string.format("最多可输入%d个字符", self.send_limit))
- else
- self.input_text.text = newStr
- end
- end
- end
- self.select_textFaceItem_id = self.model:Bind(ChatModel.SELECT_TEXT_FACE_ITEM,onSelectTextFaceItemHandler)
-
- local function onUpdateNhornNumHandler()
- self:SetHornNum()
- end
- self.update_horn_num_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onUpdateNhornNumHandler)
-
- local function onUpdateHorn( )
- self:SetCurHorn()
- end
- self.horn_event_id = ChatModel:getInstance():Bind(ChatModel.UPDATE_HORNTV_NUM, onUpdateHorn)
-
- self.input_text.onValueChanged:AddListener(function()
- local len = utf8len(self.input_text.text)
- if len > self.send_limit then
- self.input_text.text = string.sub(self.input_text.text, 1, self.send_limit-len-1) --减去多出来的字符
-
- self.tip_time = self.tip_time or 0
- if Status.NowTime-self.tip_time>0.1 then
- Message.show(string.format("最多可输入%d个字符", self.send_limit))
- self.tip_time = Status.NowTime
- end
- end
- end)
- end
-
- ---初始化发送的格式
- function HornView:InitInfo()
- self.info = self.model:GetHornVo()
-
- if self.info ~= nil then
- self.need_level = self.info.level
- self.send_limit = self.info.send_limit
- self.send_interval = self.info.send_interval
- self:SetHornNum()
- self:SetCurHorn()
- if self.input_text ~= nil then
- self.input_text.characterLimit = self.send_limit+1
- end
- end
- end
-
- --设置喇叭的数量
- function HornView:SetHornNum()
- local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.horn_id)
- local cur_own = GoodsModel:getInstance():GetTypeGoodsNum(self.horn_id)
- local str = "您拥有的喇叭:"
- if basic then
- if cur_own == 0 then
- self.hasHorn.text = str.."<color=#de4141>" .. cur_own .. "</color>"
- else
- self.hasHorn.text = str.."<color=#73AC44FF>" .. cur_own .."</color>"
- end
- else
- self.hasHorn.text = str.."<color=#de4141>0</color>"
- end
- end
-
- function HornView:GetHornNum()
- return GoodsModel:getInstance():GetTypeGoodsNum(self.horn_id)
- end
-
- --设置喇叭排队数量
- function HornView:SetCurHorn()
- local num = self.model:GetDelayHornNum()
- self.curHorn.text = string.format("当前排队喇叭:%d", num)
- end
|