2011-01-10 100 views

回答

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); 
+0

arabicTextField.direction = flashx.textLayout.formats.Direction.RTL;谢谢一堆! – robertp 2011-09-12 14:48:17

1

此外,您可能会需要包括你在图书馆

+1

不,包括字体是没有必要的。 – 2011-04-11 00:14:46

0

我也有成功与FlarabySWF使用的字体 - 它的成本一些钱(不是很多),但它确实工作得非常好,我的经验。

+0

爱Flaraby许可条件...“作为FlarabySWF的买家,您可以使用它,条件是您要转换的文本和转换后的文本不以任何方式包含或暗指任何违反伊斯兰教法或违反伊斯兰教本身的行为,包括但不限于:与伊斯兰教伦理学相抵触的任何作品,如性或色情,赌博,任何反对宗教或信使/先知的作品“。 – chichilatte 2015-06-01 16:29:25

1

尝试添加的TextFormat以礼右对齐

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

提供屏幕截图会让你获得加分:) – 2012-09-22 03:58:59

2

我知道这是一个古老的线程。但仍然是RTL文本最有用的片段。谢谢埃伦。

让我补充在CC的时间编码iOS版Flash Builder的4.7的一些经验:

Flash Builder中不显示阿拉伯和其他RTL语言在iOS需要在TLFTextField及其支持类船舶。

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

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

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

您可能会想到重新引入TLFTextField。这里是你如何能做到这一点:从创意云

    • 安装Flash专业版CS6在programfolder的“库”子文件夹,你会发现,含有使用TLFTextField所需的类2度的SWC(!) :TLFRuntime.swc & textLayout.swc
    • 复制SWC在ProjectFolder,包括它在Flash Builder中打开你的项目的属性 - > ActionScript构建路径 - >库路径 - >添加SWC(或添加SWC文件夹内)

    这应该让爱伦的c使用Air SDK 3.9在iOS上使用FlashBuilder 4.7.0

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