|
-
- -- 表情 & 快捷语
-
- -- 点击空白区域会关闭界面
-
- -- 快捷语由使用者自行定义
-
- -- 表情包所有游戏公用
-
- 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;
|