KineticJS文本RTL排版

3

所以我正在使用KineticJS处理一个包含希伯来文本的项目,并且我发现我编写的文本是从左到右对齐而不是从右到左对齐 - 尽管我的body标签包含dir =“rtl”,并且我的容器div的CSS包括“direction:rtl”。 我已经研究了这个问题,但没有找到任何东西,所以我在这里寻求帮助。有人知道如何制作RTL的Kinetic.Text吗?

谢谢!

1个回答

1

Kinetic.Text没有自动RTL功能,但您可以使用以下解决方法:

var a=rtl("0123456789");

function rtl(a){
    return(a.slice(-1)+a.slice(0,a.length-1));
}

例子 Kinetic.Text:
var theText="Hello, World!";

var simpleText = new Kinetic.Text({
  x: 20,
  y: 16,
  text: rtl(theText),
  fontSize: 12,
  fontFamily: 'Hebrew David',
  fill: 'black'
});

好的,我简直不敢相信我之前没有注意到这一点,但是这并没有真正地将文本从右到左排列。它确实将标点符号移到了左边,但同时也颠倒了整个文本——例如,如果我输入“hello”,它会显示“olleh”。我该如何修复它,以便只有标点符号会切换位置? - hillai
我的错......我已经重新阅读了你的问题,并编辑了我的答案,提供了一个解决方案。再次抱歉! - markE
没关系哈哈,不用担心。自从得到你的答案后,我已经为“手动RTLing”编写了一个函数。我还在KineticJS GitHub上开了一个问题,请求添加Kinetic.Text“dir”属性。感谢你的帮助! - hillai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接