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);