You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
3.7 KiB

  1. -- 表情 & 快捷语
  2. -- 点击空白区域会关闭界面
  3. -- 快捷语由使用者自行定义
  4. -- 表情包所有游戏公用
  5. local MJChatFaceView = class("MJChatFaceView", cc.UIView)
  6. local ChatFace_Index =
  7. {
  8. Message = 1,
  9. Face = 2,
  10. }
  11. --[[
  12. messageList =
  13. {
  14. [1] = "快捷语1",
  15. [2] = "快捷语2",
  16. [3] = "快捷语3",
  17. [4] = "快捷语4",
  18. [5] = "快捷语5",
  19. [6] = "快捷语6",
  20. }
  21. --]]
  22. -- messageList : 传入快捷语列表,不同的子游戏可能不一样
  23. -- messageCallback : 玩家选择快捷语之后的回调
  24. -- faceCallback : 玩家选择表情之后的回调
  25. function MJChatFaceView:ctor(messageList, messageCallback, faceCallback)
  26. MJChatFaceView.super.ctor(self);
  27. self.messageList = messageList;
  28. self.messageCallback = messageCallback;
  29. self.faceCallback = faceCallback;
  30. local ui = loadUI("mj/res/ui/ui_fangjian/mj_fangjian_face.ui");
  31. self.ui = ui;
  32. self:addChild(ui);
  33. end
  34. function MJChatFaceView:onEnter()
  35. MJChatFaceView.super.onEnter(self)
  36. -- 点击空白区域会关闭界面
  37. self.ui.Items.Layout_Root:registerClick(handler(self , self.onClickCancel))
  38. -- local radio = import("luaScript.Tools.RadioManager"):new()
  39. -- if radio then
  40. -- radio:addItem(self.ui.Items.CheckBox_Message, ChatFace_Index.Message)
  41. -- radio:addItem(self.ui.Items.CheckBox_Face, ChatFace_Index.Face)
  42. -- radio:setCallback(handler(self, self.onClickCheckBox))
  43. -- radio:setDefault(ChatFace_Index.Message)
  44. -- end
  45. self.templateMessage = self.ui.Items.Layout_Message;
  46. self.templateMessage:setVisible(false)
  47. self.templateFace = self.ui.Items.Layout_Face;
  48. self.templateFace:setVisible(false)
  49. loadSpriteFrameFile(Face_Btn_File);
  50. -- 初始化快捷语列表
  51. local uiScrollMessage = self.ui.Items.ScrollView_Message
  52. uiScrollMessage:removeAllChildren()
  53. uiScrollMessage:hideAllBar();
  54. uiScrollMessage:getInnerContainer():setAutoSize(true)
  55. for k,v in pairsByKeys(self.messageList) do
  56. local item = self:createMessageItem(k, v)
  57. if item then
  58. uiScrollMessage:addChild(item)
  59. end
  60. end
  61. uiScrollMessage:jumpToTopOnSizeChanged()
  62. -- 初始化表情列表
  63. local uiScrollFace = self.ui.Items.ScrollView_Face
  64. uiScrollFace:removeAllChildren()
  65. uiScrollFace:hideAllBar();
  66. uiScrollFace:getInnerContainer():setAutoSize(true)
  67. for k=1,16 do--k,v in pairsByKeys(Face_Def) do
  68. local item = self:createFaceItem(k)
  69. if item then
  70. uiScrollFace:addChild(item)
  71. end
  72. end
  73. uiScrollFace:jumpToTopOnSizeChanged()
  74. end
  75. function MJChatFaceView:onClickCheckBox(idx)
  76. self.ui.Items.ScrollView_Message:setVisible(idx == ChatFace_Index.Message)
  77. self.ui.Items.ScrollView_Face:setVisible(idx == ChatFace_Index.Face)
  78. end
  79. function MJChatFaceView:createMessageItem(idx, text)
  80. local ui = self.templateMessage:getCopied()
  81. ui.Items = getUIItems(ui)
  82. ui.Items.Text_Message:setText(text)
  83. ui:registerClick(function()
  84. self:onClickMessage(idx);
  85. end)
  86. return ui;
  87. end
  88. function MJChatFaceView:createFaceItem(idx)
  89. local ui = self.templateFace:getCopied()
  90. ui.Items = getUIItems(ui)
  91. local btnPng = "mj_face_"..idx..".png"--Face_Def[idx].btnPng
  92. ui.Items.Button_Face_1:loadTextureNormal(btnPng, cc.TextureResType.plistType)
  93. ui.Items.Button_Face_1:loadTexturePressed(btnPng, cc.TextureResType.plistType)
  94. ui.Items.Button_Face_1:loadTextureDisabled(btnPng, cc.TextureResType.plistType)
  95. ui.Items.Button_Face_1:registerClick(function()
  96. self:onClickFace(idx);
  97. end)
  98. return ui;
  99. end
  100. function MJChatFaceView:onClickMessage(idx)
  101. playBtnEffect()
  102. if self.messageCallback then
  103. self.messageCallback(idx)
  104. end
  105. self:onClickCancel()
  106. end
  107. function MJChatFaceView:onClickFace(idx)
  108. playBtnEffect()
  109. if self.faceCallback then
  110. self.faceCallback(idx)
  111. end
  112. self:onClickCancel()
  113. end
  114. -- 关闭
  115. function MJChatFaceView:onClickCancel()
  116. self:removeFromParent()
  117. end
  118. return MJChatFaceView;