Laya Label

结构描述
Packagelaya.ui
ClassLaya.Label
HierarchyLabel / UIComponent

Label 类用于创建显示对象并显示文本,其文字可以是系统字体或BMFont字体。

构造函数

// 创建一个新的Label实例
let label:Label = new Laya.Label(text?:string);
存取器类型描述备注
alignString水平对齐方式left居左/center居中/right居右
bgColorString文本背景颜色RGB字符串
boldBoolean是否加粗默认false
borderColorString文本边框颜色RGB字符串
colorString文本颜色RGB字符串
dataSource-数据源-
fontString文本字体类型默认Arial
fontSizeint文本字体像素大小默认20px
heightNumber显示对象像素高度为0高度自适应
italicBoolean文本是否斜体默认false
leadingNumber垂直行像素间距-
overflowString文本超出文本域后的溢出方式hidden>visible>scroll
paddingString像素内边距上,右,下,左
stokeNumber描边像素宽度默认为0不描边
stokeColorString描边颜色RGB色值字符串
textString文本内容字符串-
textField-文本空间实体实例-
underlineBoolean是否添加下划线-
underlineColorString下划线颜色-
valignString垂直对齐方式top顶部对齐/middle居中对齐/bottom底部对齐
widthNumber显示对象像素宽度为0宽度自适应
wordWrapBoolean是否自动换行默认false

例如:

class Test {
    constructor() {
        //初始化引擎
        Laya.init(Laya.Browser.clientWidth, Laya.Browser.clientHeight, Laya.WebGL);
        //初始化舞台
        this.initStage();
        //运行
        this.run();
    }
    /**初始化舞台*/
    initStage(){
        //设置舞台对齐方式
        this.setStageAlign("center", "middle");
        //设置舞台屏幕模式
        this.setStageScreen("horizontal");
        //设置舞台缩放模式
        this.setStageScale("showall");
        //设置舞台背景
        Laya.stage.bgColor = "#000000";
    }
    /**设置舞台缩放模式 */
    setStageScale(mode){
        mode = mode.toLowerCase();
        if(mode == "noscale"){
            //不缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_NOSCALE;
        }else if(mode == "showall"){
            //显示所有 最小比例缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_SHOWALL;
        }else if(mode == "exactfit"){
            //全屏不等比缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_EXACTFIT;
        }else if(mode == "noborder"){
            //无框缩放 最大比例缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_NOBORDER;
        }else if(mode == "full"){
            //全屏缩放 舞台宽高等于屏幕宽高
            Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;
        }else if(mode == "fixedwidth"){
            //宽度固定 宽度不变 高度根据屏幕比缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_FIXED_WIDTH;
        }else if(mode == "fixedheight"){
            //高度固定 高度不变 宽度根据屏幕比缩放
            Laya.stage.scaleMode = Laya.Stage.SCALE_FIXED_HEIGHT;
        }else if(mode == "fixedauto"){
            //自动选择 根据宽高比自动选择使用fixedwidth或fixedheight
            Laya.stage.scaleMode = Laya.Stage.SCALE_FIXED_AUTO;
        }
    }
    /**设置舞台屏幕模式 */
    setStageScreen(mode = "horizontal"){
        mode = mode.toLowerCase();
        if(mode == "horizontal"){
            Laya.stage.screenMode = Laya.Stage.SCREEN_HORIZONTAL;
        }else if(mode == "vertical"){
            Laya.stage.screenMode = Laya.Stage.SCREEN_VERTICAL;
        }
    }
    /**设置舞台对齐方式 */
    setStageAlign(h, v){
        h = h.toLowerCase();
        if(h == "left"){
            Laya.stage.alignH = Laya.Stage.ALIGN_LEFT;
        }else if(h == "center"){
            Laya.stage.alignH = Laya.Stage.ALIGN_CENTER;
        }else if(h == "right"){
            Laya.stage.alignH = Laya.Stage.ALIGN_RIGHT;
        }
        v = v.toLowerCase();
        if(v == "top"){
            Laya.stage.alignV = Laya.Stage.ALIGN_TOP;
        }else if(v == "middle"){
            Laya.stage.alignV = Laya.Stage.ALIGN_MIDDLE;
        }else if(v == "bottom"){
            Laya.stage.alignV = Laya.Stage.ALIGN_BOTTOM;
        }
    }
    run(){
        this.createLabel("LABEL DEMO").pos(Laya.stage.width>>1, Laya.stage.height>>1);
    }
    createLabel(text){
        let label = new Laya.Label();
        Laya.stage.addChild(label);

        label.font = "Microsoft YaHei";
        label.fontSize = 30;
        label.text = text;
        label.color = "#FFFFFF";
        label.stroke = 5;
        label.strokeColor = "#FF0000";

        return label;
    }
}
//启动
new Test();

描边

在运行时设置了描边的文本比没有设置的会多调用一次绘图指令,此时文本对CPU的使用量和文本的数量成正比,因此应尽量使用替代方案来完成同样的需求。

  • 对于几乎不变动的文本内容,可以使用cacheAs降低性能消耗。
  • 对于内容经常变动但使用字符数量较少的文本域,可选择使用位图字体。
方法返回值描述
changeText(text:String)void快速更改显示文本
destroy(destroyChild:Boolean=true)void销毁当前对象

更改显示文本

大多数情况下,很多文本都无需复杂的排版,仅仅简单地显示一行字,为此Text、Label都提供了名为changeText的方法可以直接跳过排版。

changeText() 方法会直接修改绘图指令中该文本绘制的最后一条指令,前面的绘图指令依旧存在的行为会导致changeText只适用于文本始终只有一行和文本样式始终不变的情况。

changeText() 快速更改显示文本,不会进行排版计算,因此效率较高。如果只是更改文字内容,不更改文字样式,建议采用此接口,能提高效率。

销毁当前对象

destroy()销毁Label对象,默认会将自己从父节点上移除,并清理自身引用关系,等待JavaScript自动垃圾回收机制进行回收。

destroy()会移除自身的事件监听,移除自身的定时器监听,移除子对象并从父节点中移除自己。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值