-- 表情 & 快捷语 -- 点击空白区域会关闭界面 -- 快捷语由使用者自行定义 -- 表情包所有游戏公用 local MJChatFaceView = class("MJChatFaceView", cc.UIView) local ChatFace_Index = { Message = 1, Face = 2, } --[[ messageList = { [1] = "快捷语1", [2] = "快捷语2", [3] = "快捷语3", [4] = "快捷语4", [5] = "快捷语5", [6] = "快捷语6", } --]] -- messageList : 传入快捷语列表,不同的子游戏可能不一样 -- messageCallback : 玩家选择快捷语之后的回调 -- faceCallback : 玩家选择表情之后的回调 function MJChatFaceView:ctor(messageList, messageCallback, faceCallback) MJChatFaceView.super.ctor(self); self.messageList = messageList; self.messageCallback = messageCallback; self.faceCallback = faceCallback; local ui = loadUI("mj/res/ui/ui_fangjian/mj_fangjian_face.ui"); self.ui = ui; self:addChild(ui); end function MJChatFaceView:onEnter() MJChatFaceView.super.onEnter(self) -- 点击空白区域会关闭界面 self.ui.Items.Layout_Root:registerClick(handler(self , self.onClickCancel)) -- local radio = import("luaScript.Tools.RadioManager"):new() -- if radio then -- radio:addItem(self.ui.Items.CheckBox_Message, ChatFace_Index.Message) -- radio:addItem(self.ui.Items.CheckBox_Face, ChatFace_Index.Face) -- radio:setCallback(handler(self, self.onClickCheckBox)) -- radio:setDefault(ChatFace_Index.Message) -- end self.templateMessage = self.ui.Items.Layout_Message; self.templateMessage:setVisible(false) self.templateFace = self.ui.Items.Layout_Face; self.templateFace:setVisible(false) loadSpriteFrameFile(Face_Btn_File); -- 初始化快捷语列表 local uiScrollMessage = self.ui.Items.ScrollView_Message uiScrollMessage:removeAllChildren() uiScrollMessage:hideAllBar(); uiScrollMessage:getInnerContainer():setAutoSize(true) for k,v in pairsByKeys(self.messageList) do local item = self:createMessageItem(k, v) if item then uiScrollMessage:addChild(item) end end uiScrollMessage:jumpToTopOnSizeChanged() -- 初始化表情列表 local uiScrollFace = self.ui.Items.ScrollView_Face uiScrollFace:removeAllChildren() uiScrollFace:hideAllBar(); uiScrollFace:getInnerContainer():setAutoSize(true) for k=1,16 do--k,v in pairsByKeys(Face_Def) do local item = self:createFaceItem(k) if item then uiScrollFace:addChild(item) end end uiScrollFace:jumpToTopOnSizeChanged() end function MJChatFaceView:onClickCheckBox(idx) self.ui.Items.ScrollView_Message:setVisible(idx == ChatFace_Index.Message) self.ui.Items.ScrollView_Face:setVisible(idx == ChatFace_Index.Face) end function MJChatFaceView:createMessageItem(idx, text) local ui = self.templateMessage:getCopied() ui.Items = getUIItems(ui) ui.Items.Text_Message:setText(text) ui:registerClick(function() self:onClickMessage(idx); end) return ui; end function MJChatFaceView:createFaceItem(idx) local ui = self.templateFace:getCopied() ui.Items = getUIItems(ui) local btnPng = "mj_face_"..idx..".png"--Face_Def[idx].btnPng ui.Items.Button_Face_1:loadTextureNormal(btnPng, cc.TextureResType.plistType) ui.Items.Button_Face_1:loadTexturePressed(btnPng, cc.TextureResType.plistType) ui.Items.Button_Face_1:loadTextureDisabled(btnPng, cc.TextureResType.plistType) ui.Items.Button_Face_1:registerClick(function() self:onClickFace(idx); end) return ui; end function MJChatFaceView:onClickMessage(idx) playBtnEffect() if self.messageCallback then self.messageCallback(idx) end self:onClickCancel() end function MJChatFaceView:onClickFace(idx) playBtnEffect() if self.faceCallback then self.faceCallback(idx) end self:onClickCancel() end -- 关闭 function MJChatFaceView:onClickCancel() self:removeFromParent() end return MJChatFaceView;