RichText 组件参考

    更多关于 BBCode 标签的内容,请参考本文档的 小节。

    点击属性检查器下面的添加组件按钮,然后从添加渲染组件中选择 RichText,即可添加 RichText 组件到节点上。

    富文本的脚本接口请参考 。

    下面分别是应用 size 和 color 标签的一个例子:

    <color=green>你好</color>,<size=50>Creator</>

    支持标签

    注意:所有的 tag 名称必须是小写,且属性值是用=号赋值

    名称 描述 示例 注意事项
    color 指定字体渲染颜色,颜色值可以是内置颜色,比如 white,black 等,也可以使用 16 进制颜色值,比如#ff0000 表示红色 <color=#ff0000>Red Text</color> 内置颜色值参考 cc.Color
    size 指定字体渲染大小,大小值必须是一个整数 Size 值必须使用等号赋值
    outline 设置文本的描边颜色和描边宽度 <outline color=red width=4>A label with outline</outline> 如果你没有指定描边的颜色或者宽度的话,那么默认的颜色是白色(#ffffff),默认的宽度是 1
    b 指定使用粗体来渲染 <b>This text will be rendered as bold</b> 名字必须是小写,且不能写成 bold
    i 指定使用斜体来渲染 <i>This text will be rendered as italic</i> 名字必须是小写,且不能写成 italic
    u 给文本添加下划线 <u>This text will have a underline</u> 名字必须是小写,且不能写成 underline
    on 指定一个点击事件处理函数,当点击该 Tag 所在文本内容时,会调用该事件响应函数 <on click="handler"> click me! </on> 除了 on 标签可以添加 click 属性,color 和 size 标签也可以添加,比如
    br 插入一个空行 <br/> 注意:<br></br><br> 都是不支持的。
    img 给富文本添加图文混排功能,img 的 src 属性必须是 ImageAtlas 图集里面的一个有效的 spriteframe 名称 <img src='emoji1' click='handler' /> 注意: 只有 <img src='foo' click='bar' /> 这种写法是有效的。如果你指定一张很大的图片,那么该图片创建出来的精灵会被等比缩放,缩放的值等于富文本的行高除以精灵的高度。

    标签与标签是支持嵌套的,且嵌套规则跟 HTML 是一样的。比如下面的嵌套标签设置一个文本的渲染大小为 30,且颜色为绿色。

    也可以实现为:

    <color=green><size=30>I'm green</size></color>

    富文本组件全部由 JS 层实现,采用底层的 Label 节点拼装而成,并且在上层做排版逻辑。
    这意味着,你新建一个复杂的富文本,底层可能有十几个 label 节点,而这些 label 节点都是采用系统字体渲染的,

    所以,一般情况下,你不应该在游戏的主循环里面频繁地修改富文本的文本内容, 这可能会导致性能比较低。