[LayaAir 1.0]字距的调整问题

在接平台时候有些机型出现字距太小,整行字挤压在一起,估计是context 在这些机型获取不了之类的问题。
我现在问题是,如何在laya内设置字距。
已邀请:

Aar0n

赞同来自:

如果是bug 请上传demo 以及标注一下哪些机型 挤压在一起, 是什么平台,什么系统,引擎版本

155*****949

赞同来自:

又是自行解决,自己回复一下自己,我个人很啰嗦:
对于某些特殊的机型会出现两个很奇怪的事情
1、无法获取屏幕尺寸:例如在看库文件内,引入的laya.core里有方法 __proto.setScreenSize=function(screenWidth,screenHeight)
这是你调用了Laya.stage.screenMode=XXXXX之后 他就会在这里调用这个方法,然后适配屏幕。你会发现在某些 机型内 this.designWidth 、与 this.designHeight 是无法获取的。这就尴尬了。导致后面直接不适配,或者就算调用showall可以适配,也有黑边且按钮错位。我找了超久才发现这个。怎么办呢?
以后你遇到适配问题,你 在laya有一种万能解决方法,就直接在改这个库文件。 
我个人是暂时是在用了Laya.stage.screenMode=showall前提下 按机型判断去改,然后直接加上这句:
//不能用下面这一句,不然会匹配不了
//scaleX=scaleY=Math.min(scaleX,scaleY);
canvasWidth=realWidth=720;
canvasHeight=realHeight=1440;
然后直接就完全适配了屏幕
 
2、字体字距问题:实际上这个问题就是上面的问题带来的,这个怎么破呢,要找到laya.webgl 这个库文件,然后你找到这个方法
DrawText.drawText=function(ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,underLine)在
var scale=sx!==1 || sy!==1;
在这句后面加判断 然后把特殊机型都改成sx=sy=1;这样就基本适配了。导致这样是因为特殊机型的缩放比例是很奇怪。
然后字距问题也解决了。
以上不算什么高端分享,但起码对于大家应急处理还是很有帮助。
 
最后想留一个疑问,我适配某一个机型的时候就算我用了这个方法,但他死活差那么一点点留一个小黑边。不明白为啥,硬件问题吗
 
 
 
 
 
 

要回复问题请先

商务合作
商务合作