[]LayaAir下加载阿拉伯TTF字体,手机上显示时左右顺序反了。

使用阿拉伯语言的时候,PC机上显示正常,通过LayaBox访问url或是打包app时,单词显示左右反了。PS:使用LayaAir1.7.16版本开发。
PC机上显示如下:
pc.png

 
手机上显示如下:
手机上的.png

 
代码如下:
 
public function LayaSample()
{
//初始化引擎
Laya.init(640, 1136, WebGL);
Laya.stage.alignV = Stage.ALIGN_MIDDLE;
Laya.stage.alignH = Stage.ALIGN_CENTER;
Laya.stage.scaleMode = Stage.SCALE_SHOWALL;
Laya.stage.screenMode = Stage.SCREEN_VERTICAL; //Stage.SCREEN_HORIZONTAL,Stage.SCREEN_VERTICAL
Laya.stage.bgColor = "#0e277a";
Laya.stage.frameRate = "fast";
Config.atlasEnable = true;
 
Text.CharacterCache = false;
Text.setTextRightToLeft(); //设置文字排版模式为右到左。
Styles.labelColor = "#FFFFFF";
Font.defaultColor = "#FFFFFF";
Font.defaultSize = 36;
Font.defaultFamily = "Arial"; //Arial 微软雅黑 DroidSans-Bold、DroidSansFallback
Font.defaultFont = "36px Arial";
 
 
Laya.loader.load("data/Questv1_Regular.ttf", Handler.create(this,onLoaded), null, Loader.BUFFER);
}
 
private function onLoaded():void
{
var arr:ArrayBuffer=Laya.loader.getRes("data/Questv1_Regular.ttf");
 
if(arr && Browser.window.conch)
{
Browser.window.conch.setFontFaceFromBuffer("hu",arr);
}
var text:Text=new Text();
text.font="hu";
text.fontSize=50;
text.text="لحسن نهر123";
text.pos(100, 100);
text.width = 500;
text.height = 500;
Laya.stage.addChild(text);
}
 
参考该贴加载字体方式:
https://ask.layabox.com/question/332
已邀请:

Aar0n

赞同来自:

这块有解决办法https://github.com/louy/Javascript-Arabic-Reshaper/blob/master/src/index.js 这个方案贴出来了,如果自己解决不了,就联系我们商务付费我们解决。

luke

赞同来自:

查看官方论坛里,也有其它的人咨询,但貌似最后没有很好的得到解决。
https://ask.layabox.com/question/12455 
http://ask.layabox.com/question/16134

Aar0n

赞同来自:

app暂不支持
 

luke

赞同来自:

官方有计划添加支持这一块的业务么。

ZZF

赞同来自:

你现在解决了吗?我这边同样的问题,native中加载阿拉伯字体,然后顺序显示反的

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作