UIText公有属性、方法
/**
* 文本类型
*/
enum class Type
{
SYSTEM, // 系统
TTF // TTF
};
/**
* 构造函数
*/
Text();
/**
* 创建一个Text对象
* @return Text对象
*/
static Text* create();
/**
* 用textContent,fontName和fontSize创建一个Text对象。
* 用法:
* Text *text = Text::create("Hello", "Arial", 20);
* Text *text = Text::create("Hello", "xxx\xxx.ttf", 20);
*
* @param textContent 文本内容字符串
* @param fontName 可以是系统字体名称或TTF文件路径。
* @param fontSize 字体大小
* @return Text对象
*/
static Text* create(const std::string& textContent,
const std::string& fontName,
float fontSize);
/**
* 更改标签的字符串值
* @param text 字符串值
*/
void setString(const std::string& text);
/**
* 获取标签的字符串值
* @return 字符串值
*/
const std::string& getString()const;
/**
* 获取标签的字符串长度
* 注意:这个长度将比原始字符串长度大,如果你想获得原始字符串的长度,你应该调用this->getString().size()来代替
* @return 字符串长度
*/
ssize_t getStringLength()const;
/**
* 设置标签的字体大小
* @param 字体大小
*/
void setFontSize(float size);
/**
* 获取标签的字体大小
* @return 字体大小
*/
float getFontSize()const;
/**
* 设置文字颜色
* @param color 文字颜色
*/
void setTextColor(const Color4B color);
/**
* 获取文字颜色
* @return 文字颜色
*/
const Color4B& getTextColor() const;
/**
* 设置标签的字体名称
* 如果您尝试使用系统字体,则只需传递字体名称
* 如果您尝试使用TTF,则应该将文件路径传递给TTF文件
* 用法:
* Text *text = Text::create("Hello", "Arial", 20);
* text->setFontName("Marfelt");
* text->setFontName("xxxx/xxx.ttf");
* @param 字体名称
*/
void setFontName(const std::string& name);
/**
* 获取字体名称
* @return 字体名称
*/
const std::string& getFontName()const;
/**
* 获取字体类型
* @return 字体类型(Type)
*/
Type getType() const;
/**
* 设置标签的触摸比例
* @param enabled 启用标签的触摸缩放
*/
void setTouchScaleChangeEnabled(bool enabled);
/**
* 获取标签的触摸比例
* @return 标签是否已启用触摸比例
*/
bool isTouchScaleChangeEnabled()const;
/*
* ?
*/
virtual Size getVirtualRendererSize() const override;
/*
* ?
*/
virtual Node* getVirtualRenderer() override;
/**
* 获取自动模式下的渲染大小
* @return 渲染大小在自动模式下的大小
*/
virtual Size getAutoRenderSize();
/**
* 返回控件的“类名”
*/
virtual std::string getDescription() const override;
/**
* 设置文字渲染范围(即文本显示范围)
* 同时调用`ignoreContentAdaptWithSize(false)`,否则就是文本区域
* 大小是通过文本内容的真实大小来计算的
* @param 渲染范围
*
*/
void setTextAreaSize(const Size &size);
/**
* 返回文本渲染区域大小
* @return 文本渲染区域大小
*/
const Size& getTextAreaSize()const;
/**
* 水平对齐方式
*/
enum class CC_DLL TextHAlignment
{
LEFT,
CENTER,
RIGHT
};
/**
* 设置文本水平对齐
* @param alignment 文本水平对齐类型
*/
void setTextHorizontalAlignment(TextHAlignment alignment);
/**
* 获取文本水平对齐
* @return 文本水平对齐类型
*/
TextHAlignment getTextHorizontalAlignment()const;
/**
* 设置文本垂直对齐
* @param alignment 文本垂直对齐类型
*/
void setTextVerticalAlignment(TextVAlignment alignment);
/**
* 获取文本垂直对齐
* @return 文本垂直对齐类型
*/
TextVAlignment getTextVerticalAlignment()const;
/**
* 为标签启用阴影,支持阴影效果模糊
* @param shadowColor 阴影效果的颜色
* @param offset 阴影效应的偏移
* @param blurRadius 阴影效果的模糊半径
*/
void enableShadow(const Color4B& shadowColor = Color4B::BLACK,
const Size &offset = Size(2,-2),
int blurRadius = 0);
/**
* 返回是否启用阴影效果。
*/
bool isShadowEnabled() const;
/**
* 返回阴影偏移量
*/
Size getShadowOffset() const;
/**
* 返回阴影模糊半径
*/
float getShadowBlurRadius() const;
/**
* 返回阴影颜色
*/
Color4B getShadowColor() const;
/**
* 为标签启用描边
* 只有在使用系统字体时,才能在IOS和Android上运行
*
* @param outlineColor 描边的颜色
* @param outlineSize 描边的大小
*/
void enableOutline(const Color4B& outlineColor,int outlineSize = 1);
/**
* 返回描边大小
*/
int getOutlineSize() const;
/**
* 字体荧光,只支持TTF
* @param glowColor 荧光颜色
*/
void enableGlow(const Color4B& glowColor);
/**
* 文字效果
*/
enum class LabelEffect {
NORMAL,
OUTLINE,
SHADOW,
GLOW,
ALL
};
/**
* 禁用所有文字效果,包括阴影,描边和荧光。
*/
void disableEffect();
/**
* 禁用特定的文字效果
* @param effect 使用LabelEffect参数指定应该禁用哪个效果。
*/
void disableEffect(LabelEffect effect);
/**
* 返回当前字体效果类型
*/
LabelEffect getLabelEffectType() const;
/**
* 返回当前效果颜色值
*/
Color4B getEffectColor() const;
UIText示例
var text = new ccui.Text("玉米包谷玉米包谷 ?(此处为emoji表情)", "STYuanti-SC-Regular", 20);
text.setPosition(640, 360);
text.setFontSize(30);
text.setTextColor(cc.hexToColor("#87562A"));
text.setTextAreaSize(cc.size(500, 300));
text.ignoreContentAdaptWithSize(false);
text.setTextHorizontalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER);
// 阴影
text.enableShadow(cc.color(0,0,0,255), cc.size(5, 5), 5);
// 描边
text.enableOutline(cc.color(255,255,255,255), 5);
// 取消描边
text.disableEffect(1);