|
- cc.Text.ClassName = "Text"
-
- function cc.Text:saveToXmlNode(xmlNode)
- cc.Widget.saveToXmlNode(self , xmlNode);
-
- xmlNode.TouchScaleChangeEnabled = self:isTouchScaleChangeEnabled();
-
- xmlNode.Text = self:getText();
- xmlNode.FontConfig = self:getFontConfig();
-
- xmlNode.AreaSize = self:getTextAreaSize();
- xmlNode.TextHorizontalAlignment = self:getTextHorizontalAlignment();
- xmlNode.TextVerticalAlignment = self:getTextVerticalAlignment();
-
- xmlNode.CharPadding = self:getCharPadding();
- xmlNode.LinePadding = self:getLinePadding();
- end
-
- function cc.Text:loadFromXmlNode(xmlNode)
- cc.Widget.loadFromXmlNode(self , xmlNode);
- self:setTouchScaleChangeEnabled(xmlNode.TouchScaleChangeEnabled);
-
- if xmlNode.AreaSize then
- self:setTextAreaSize(xmlNode.AreaSize);
- end
-
- local fontConfig = xmlNode.FontConfig
- if not fontConfig then
- fontConfig = {}
- fontConfig.fontFilePath = "res/default/msyh.ttc"
- fontConfig.fontSize = xmlNode.FontSize
- fontConfig.glyphs = cc.GLYPHCOLLECTION_DYNAMIC
- fontConfig.customGlyphs = nil
- fontConfig.distanceFieldEnabled = false
- fontConfig.outlineSize = 0
- end
- self:setFontConfig(fontConfig);
-
- self:setTextHorizontalAlignment(xmlNode.TextHorizontalAlignment);
- self:setTextVerticalAlignment(xmlNode.TextVerticalAlignment);
-
- if xmlNode.CharPadding then
- self:setCharPadding(xmlNode.CharPadding);
- self:setLinePadding(xmlNode.LinePadding);
- end
-
- self:setText(xmlNode.Text);
- end
-
- -- 收集ui的文本,返回文本table
- function cc.Text:collectText()
- return {TextTranslator:collect(self:getString())};
- end
-
- -- 翻译xmlNode里的文本,dict是字典表
- function cc.Text:applyDict(dict)
- local translated = dict[TextTranslator:collect(self:getString())];
- if translated then
- self:setString(TextTranslator:translate(self:getString() , translated));
- end
- end
-
- function cc.Text:setFontConfig(ttfConfig)
- local label = self:getVirtualRenderer();
- label:setFontConfig(ttfConfig)
- end
-
- function cc.Text:getFontConfig()
- local label = self:getVirtualRenderer();
- local config = label:getFontConfig()
- return config;
- end
-
- function cc.Text:setCharPadding(padding)
- local label = self:getVirtualRenderer();
- label:setCharPadding(padding)
- end
-
- function cc.Text:getCharPadding()
- local label = self:getVirtualRenderer();
- return label:getCharPadding()
- end
-
- function cc.Text:setLinePadding(padding)
- local label = self:getVirtualRenderer();
- label:setLinePadding(padding)
- end
-
- function cc.Text:getLinePadding()
- local label = self:getVirtualRenderer();
- return label:getLinePadding()
- end
-
- function cc.Text:setPadding(x , y)
- local label = self:getVirtualRenderer();
- label:setPadding(x , y)
- end
-
-
- cc.Text.setText = cc.Text.setString
- cc.Text.getText = cc.Text.getString
-
- function cc.Text:extend(node)
- cc.Widget:extend(node);
- node:setName("Text")
- end
-
- function cc.Text:createNode()
- local layer = cc.Text:create();
- layer.Label = tolua.cast(layer:getVirtualRenderer() , "cc.Label");
-
- cc.Text:extend(layer);
- return layer;
- end
-
- function cc.Text:copyProperties(source)
- cc.Widget.copyProperties(self , source);
- self:setFontConfig(source:getFontConfig());
- self:setText(source:getString());
- self:setTouchScaleChangeEnabled(source:isTouchScaleChangeEnabled());
- self:setTextHorizontalAlignment(source:getTextHorizontalAlignment());
- self:setTextVerticalAlignment(source:getTextVerticalAlignment());
- self:setTextAreaSize(source:getTextAreaSize());
- end
-
- -- 设置默认值
- function cc.Text:setDefaults()
- local ttfConfig = {}
- ttfConfig.fontFilePath = "res/default/msyh.ttc"
- ttfConfig.fontSize = 30
- ttfConfig.glyphs = cc.GLYPHCOLLECTION_DYNAMIC
- ttfConfig.customGlyphs = nil
- ttfConfig.distanceFieldEnabled = false
- ttfConfig.outlineSize = 0
-
- self:setFontConfig(ttfConfig);
- self:setText("文本");
- end
-
- function cc.Text:setTextColor(color)
- local config = self:getFontConfig();
- config.texColor = color;
- self:setFontConfig(config);
- end
|