creator小功能----Label文本组件的多种实现方法和预制体

Label是app中经常要用到的组件,那么有哪些实现方法呢?

第一种:UI编辑器界面绑定

先定义属性

        myLabel:{
            type: cc.Label,
            default: null,
        },

然后加载脚本,并进行绑定

改变文本内容:

this.myLabel.string = "hahahaha";

第二种,通过代码获取

        console.log("this.name:", this.name);
        console.log("this.node.name:", this.node.name);
        var _node = this.node.getChildByName("myLabel");
        console.log("_node:", _node);
        var _label = _node.getComponent(cc.Label);
        console.log("_label:", _label);
        _label.string = "abc";

this和this.node是脚本挂载的节点,我这里是bg

然后获取孩子节点myLabel

this.node.getChildByName("myLabel");

最后获取label组件

this.node.getChildByName("myLabel").getComponent(cc.Label);

通过string属性改变文本信息

_label.string = "abc";

RichText 介绍

RichText 属性

属性 功能说明
String 富文本的内容字符串, 你可以在里面使用 BBCode 来指定特定文本的样式
Horizontal Align 水平对齐方式
Font Size 字体大小, 单位是 point (注意,该字段不会影响 BBCode 里面设置的字体大小)
Font 富文本定制字体,所有的 label 片断都会使用这个定制的 TTF 字体
Font Family 富文本定制系统字体。
Use System Font 是否使用系统字体。
Max Width 富文本的最大宽度, 传 0 的话意味着必须手动换行.
Line Height 字体行高, 单位是 point
Image Atlas 对于 img 标签里面的 src 属性名称,都需要在 imageAtlas 里面找到一个有效的 spriteFrame,否则 img tag 会判定为无效。
Handle Touch Event 选中此选项后,RichText 将阻止节点边界框中的所有输入事件(鼠标和触摸),从而防止输入事件穿透到底层节点。

支持标签

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

名称 描述 示例 注意事项
color 指定字体渲染颜色,颜色值可以是内置颜色,比如 white,black 等,也可以使用 16 进制颜色值,比如#ff0000 表示红色 <color=#ff0000>Red Text</color> 内置颜色值参考 cc.Color
size 指定字体渲染大小,大小值必须是一个整数 <size=30>enlarge me</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 标签也可以添加,比如 <size=10 click="handler2">click me</size>
param 当点击事件触发时,可以在回调函数的第二个参数获取该数值 <on click="handler" param="test"> click me! </on> 依赖 click 事件
br 插入一个空行 <br/> 注意:<br></br><br> 都是不支持的。
img 给富文本添加图文混排功能,img 的 src 属性必须是 ImageAtlas 图集里面的一个有效的 spriteframe 名称 <img src='emoji1' click='handler' /> 注意: 只有 <img src='foo' click='bar' /> 这种写法是有效的。如果你指定一张很大的图片,那么该图片创建出来的精灵会被等比缩放,缩放的值等于富文本的行高除以精灵的高度。

设置富文本的字符内容;

      <color=#0fffff>Text</color> 指定文字的颜色;

     <img src='cow1_1'/>   img标签,文本插入图片,图片要在指定的图集里面;

     u: 给文本加下划线

     i: 用斜体来渲染, b: 用粗体来渲染

     size: 指定字体渲染大小,大小值必须是一个整数 <size=30>enlarge me</size>

    outline: 设置文本的描边颜色和描边宽度 <outline color=red width=4>A label with outline</outline>

预制体的使用

//cc.instantiate实例化一个预制体
var item = cc.instantiate(this.item_prefab);
this.node.addChild(item);
发布了265 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/ccnu027cs/article/details/104492535
今日推荐