as3中的阿拉伯语文本

时间:2011-01-10 22:02:18

标签: actionscript-3 textfield arabic

如何使用as3从右到左显示阿拉伯文字?

7 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

Text Layout Framework可以处理从右到左的文字。

答案 2 :(得分:2)

我知道这是一个老线程。但仍然是RTL Text最有用的片段。谢谢艾伦。

让我在CC:

中添加一些Flash Builder 4.7编码iOS的经验

Flash Builder不附带TLFTextField及其在iOS上显示阿拉伯语和其他RTL语言所需的支持类。

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

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

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

您可能会想到重新引入TLFTextField。这是你如何做到的:

  • 从Creative Cloud安装Flash Professional CS6(!)
  • 在程序文件夹的“libs”子文件夹中,您将找到两个包含使用TLFTextField所需类的SWC:TLFRuntime.swc& textLayout.swc
  • 在项目框架中复制SWC,并通过打开项目的属性将其包含在Flash Builder中 - > ActionScript构建路径 - >库路径 - >添加SWC(或添加SWC文件夹)

这应该使Ellen的代码可以在适用于iOS的FlashBuilder 4.7上使用Air SDK 3.9

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

尝试使用专有的右对齐方式添加文本格式

var txtFormat:TextFormat = new TextFormat();
txtFormat.align = "right";

答案 5 :(得分:0)

我在FlarabySWF也取得了成功 - 花了一些钱(不是很多)但实际上我的经验非常好。

答案 6 :(得分:0)

如果您不反对Flex框架,它现在包含一个体面的国际化库,可以让您轻松完成。这是一个体面的开始http://devgirl.org/2011/03/15/flex-4-localization/