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.

57 lines
1.4 KiB

  1. cc.HtmlCtrl = cc.RichCtrl
  2. cc.HtmlCtrl.ClassName = "HtmlCtrl"
  3. function cc.HtmlCtrl:saveToXmlNode(xmlNode)
  4. cc.Widget.saveToXmlNode(self , xmlNode);
  5. xmlNode.Text = self:getText();
  6. xmlNode.AutoBreak = self:getAutoBreak();
  7. xmlNode.LayoutWidth = self:getLayoutWidth();
  8. end
  9. function cc.HtmlCtrl:loadFromXmlNode(xmlNode)
  10. cc.Widget.loadFromXmlNode(self , xmlNode);
  11. self:setAutoBreak(xmlNode.AutoBreak);
  12. if xmlNode.LayoutWidth then
  13. self:setLayoutWidth(xmlNode.LayoutWidth);
  14. end
  15. self:setText(xmlNode.Text);
  16. end
  17. function cc.HtmlCtrl:extend(node)
  18. cc.Widget:extend(node);
  19. node:setName("HtmlCtrl")
  20. end
  21. -- 收集ui的文本,返回文本table
  22. function cc.HtmlCtrl:collectText()
  23. return {XmlTranslator:collect(self:getText())};
  24. end
  25. -- 翻译xmlNode里的文本,dict是字典表
  26. function cc.HtmlCtrl:applyDict(dict)
  27. local translated = dict[TextTranslator:collect(self:getText())];
  28. if translated then
  29. self:setText(TextTranslator:translate(self:getText() , translated));
  30. end
  31. end
  32. function cc.HtmlCtrl:createNode()
  33. local layer = cc.HtmlCtrl:create();
  34. cc.HtmlCtrl:extend(layer);
  35. return layer;
  36. end
  37. -- 设置默认值
  38. function cc.HtmlCtrl:setDefaults()
  39. self:setAnchorPoint(cc.p(0.5,0.5));
  40. self:setSize(cc.size(100,100));
  41. self:setAutoSize(true);
  42. self:setText('<font size="30" color="#FFFFFF" stroke="size:3;color:#000000" name="res/default/msyh.ttc">测试文本</font>');
  43. -- 默认需要响应touch事件
  44. self:setTouchEnabled(false)
  45. end