Text的中划线(删除线)

test.png


Text 是支持下划线的,但是不支持中划线,underline = true;
可以修改 laya.core.js
this.underline && this.drawUnderline(textAlgin,x,y,i);


__proto.drawUnderline=function(align,x,y,lineIndex){
            var lineWidth=this._lineWidths[lineIndex];
            switch (align){
                case 'center':
                    x-=lineWidth / 2;
                    break ;
                case 'right':
                    x-=lineWidth;
                    break ;
                case 'left':
                default :
                    break ;
                }
            y+=this._charSize.height;
            this._graphics.drawLine(x,y,x+lineWidth,y,this.underlineColor || this.color,1);
        }

y  如果  y+=this._charSize.height/2;  就是中划线 
可以自己加个变量 控制 例如  linethrough   如果是 true的时候  y+=this._charSize.height/2;  false 就是

y+=this._charSize.height

 
已邀请:

曾小猴

赞同来自: 懒懒

如果不希望改底层库,可以使用下面这个:
/**
* 给text加中划线(删除线)
* @param element 元素
* @param options
* {
* lineColor 颜色 可选 默认文字颜色
* lineWidth 线条粗度 可选 默认 2
* } 线颜色 (默认文字颜色)
*/
exports.drawDeleteTextLine = function (element, options = {}) {
var lineColor = options.lineColor || element.color;
var lineWidth = options.lineWidth || 2;
//中划线
var sp = new Sprite();
element.addChild(sp);
//画线
sp.graphics.drawLine(0, element.height / 2, element.width, element.height / 2, lineColor, lineWidth);
}

Monica - 知识达人

赞同来自:

很赞,多谢分享

要回复问题请先

商务合作
商务合作