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.

84 lines
2.2 KiB

  1. require("luaScript.Tools.Effect.UIEffectNode")
  2. -- 链接到其他Effect文件的EffectNode
  3. cc.EffectButton.ClassName = "EffectButton"
  4. function cc.EffectButton:loadFromXmlNode(xmlNode)
  5. cc.Widget.loadFromXmlNode(self , xmlNode);
  6. if xmlNode.NormalClip then
  7. self:setNormalClip(xmlNode.NormalClip);
  8. end
  9. if xmlNode.MouseDownClip then
  10. self:setMouseDownClip(xmlNode.MouseDownClip);
  11. end
  12. if xmlNode.MouseUpClip then
  13. self:setMouseUpClip(xmlNode.MouseUpClip);
  14. end
  15. if xmlNode.DisabledClip then
  16. self:setDisabledClip(xmlNode.DisabledClip);
  17. end
  18. if xmlNode.FadeInClip then
  19. self:setFadeInClip(xmlNode.FadeInClip);
  20. end
  21. if xmlNode.FadeOutClip then
  22. self:setFadeOutClip(xmlNode.FadeOutClip);
  23. end
  24. self:setEffectFile(xmlNode.EffectFile);
  25. self:setFontConfig(xmlNode.TitleFontConfig);
  26. self:setCharPadding(xmlNode.CharPadding);
  27. self:setLinePadding(xmlNode.LinePadding);
  28. self:setTitleText(xmlNode.TitleText);
  29. end
  30. -- 收集ui的文本,返回文本table
  31. function cc.EffectButton:collectText()
  32. return {TextTranslator:collect(self:getTitleText())};
  33. end
  34. -- 翻译xmlNode里的文本,dict是字典表
  35. function cc.EffectButton:applyDict(dict)
  36. local translated = dict[TextTranslator:collect(self:getTitleText())];
  37. if translated then
  38. self:setTitleText(TextTranslator:translate(self:getTitleText() , translated));
  39. end
  40. end
  41. function cc.EffectButton:createNode()
  42. local layer = cc.EffectButton:create();
  43. return layer;
  44. end
  45. -- 注册按钮被点击的事件
  46. function cc.EffectButton:registerClick(callbackFunc)
  47. local function onTouchEvent(sender, eventType)
  48. if eventType == cc.TouchEventType.ended then
  49. callbackFunc(self);
  50. end
  51. return true;
  52. end
  53. self:addTouchEventListener(onTouchEvent)
  54. end
  55. -- 设置默认值
  56. function cc.EffectButton:setDefaults()
  57. local ttfConfig = {}
  58. ttfConfig.fontFilePath = "res/default/msyh.ttc"
  59. ttfConfig.fontSize = 30
  60. ttfConfig.glyphs = cc.GLYPHCOLLECTION_DYNAMIC
  61. ttfConfig.customGlyphs = nil
  62. ttfConfig.distanceFieldEnabled = false
  63. ttfConfig.outlineSize = 0
  64. self:setFontConfig(ttfConfig);
  65. self:setTitleText("确定");
  66. self:setAutoSize(false);
  67. self:setSize(cc.size(100,100));
  68. self:setEffectFile("res/default/test.effect");
  69. -- 默认需要响应touch事件
  70. self:setTouchEnabled(true)
  71. end