AS3中的阿拉伯文本

9
如何使用AS3将阿拉伯文本从右到左显示?
7个回答

9
这段代码可以解决问题:
import flash.text.AntiAliasType;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.external.*
import fl.text.TLFTextField;
import flash.text.TextFormat;

import flashx.textLayout.formats.TextLayoutFormat;
import flashx.textLayout.elements.TextFlow;


var arabicTextField:TLFTextField = new TLFTextField();
arabicTextField.antiAliasType = AntiAliasType.ADVANCED;
arabicTextField.mouseEnabled = false;
arabicTextField.selectable = false;

arabicTextField.direction = flashx.textLayout.formats.Direction.RTL;

var fmt:TextFormat = new TextFormat();
fmt.color = 0xFFFFFF;
fmt.font = "arialArabic"
arabicTextField.embedFonts = false;
arabicTextField.defaultTextFormat = fmt;
arabicTextField.setTextFormat(fmt);

arabicTextField.direction = flashx.textLayout.formats.Direction.RTL; 非常感谢! - robertp

2

2

我知道这是一个旧帖子,但对于RTL文本仍然是最有用的代码片段。感谢Ellen。

让我在编写iOS上的Flash Builder 4.7的CC时添加一些经验:

Flash Builder没有提供TLFTextField及其支持类,这些类需要在iOS上显示阿拉伯语和其他RTL语言。

在CS6和CC之间,Adobe甚至从Flash Professional中删除了这些类。可能是因为标准的TextField类已经得到了改进。

尽管如此,在iOS上RTL和阿拉伯连字仍然无法正常工作。如果您使用TextField类的AirSimulator,则FlashBuilder将正确显示。如果在iOS上运行相同的代码,则不会。

StageText及其NativeText包装器将呈现正确,但对于静态文本存在缺点。

您可以考虑重新引入TLFTextField。以下是如何实现:

  • 从创意云中安装Flash Professional CS6(!)
  • 在程序文件夹的“libs”子文件夹中,您将找到两个SWC,其中包含使用TLFTextField所需的类:TLFRuntime.swc和textLayout.swc
  • 将SWC复制到您的ProjectFolder中,并通过打开项目属性-> ActionScript Build Path -> Library Path -> Add SWC(或Add SWC-Folder)将其包含在Flash Builder中

这应该使Ellen的代码在Air SDK 3.9的FlashBuilder 4.7上工作。

您可能会期望标准的TextField在未来的Air版本中正确显示阿拉伯语和其他RTL语言。


1
此外,您可能需要在库中包含所使用的字体。

1
不需要包含字体。 - Mudasir Bhutto

1
尝试使用合适的右对齐属性添加文本格式
var txtFormat:TextFormat = new TextFormat();
txtFormat.align = "right";

你确定这个方法可以正确显示从右到左的语言吗?我认为这只是将所有内容右对齐。 - clamp
尝试使用名为flaraby的swc组件,它有助于RTL语言。 - Yosra Nagati

0

我也尝试过FlarabySWF,虽然需要一些费用(不算多),但在我的经验中它的效果相当不错。


喜欢Flaraby许可证条件... "作为FlarabySWF的购买者,您可以在以下条件下使用它:您想要转换的文本和转换后的文本不包含或暗示任何违反伊斯兰教法或反对伊斯兰教本身的内容,包括但不限于:任何与伊斯兰道德相矛盾的作品,如性或色情、赌博、任何违反宗教或使者/先知的东西。" - chichilatte

0

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