Flex 3.6中的direction属性不起作用

时间:2013-04-11 14:08:30

标签: actionscript-3 flex actionscript flex3 arabic

根据文件:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Label.html

属性方向可以从flex 3获得,但你必须从样式中使用它而不是直接使用文本字段,就像在flex 4.5中一样

所以我设置:

<mx:Style>
    .myFontStyle {
    direction: "rtl";
    }
</mx:Style>

<mx:Label id="rtlLabel" styleName="myFontStyle"/>

当我使用flex 4.6时,它正在工作但不是3.6的任何建议为什么或我做错了什么? 或许您知道处理阿拉伯语和希伯来语的任何不同方式吗?它可能是纯粹的actionScript

1 个答案:

答案 0 :(得分:0)

请注意direction样式的文档说明:

  

注意:此样式仅在MX组件将UIFTETextField指定为textFieldClass时适用。

为了使这项工作,您还需要设置textFieldClass样式:

<mx:Style>
    .myFontStyle {
    direction: "rtl";
    textFieldClass: ClassReference("mx.core.UIFTETextField");
    }
</mx:Style>

我刚试过这个测试,但是在使用Flex 3 SDK时,这个类没有包含在内(至少在我的环境中),我收到编译错误,说它找不到UIFTETextField。我不经常使用Flex 3 SDK,因此我可能只使用它的旧版本(我正在使用此SDK:Flex 3.6A与Flash Builder 4.6)。但是,我觉得这个RTL功能仅在使用Flex 4 SDK时才存在...因此,只有在使用Flex 4 SDK进行编译时才能使用带有RTL文本的<mx:Label /> - 尽管我不是确定那是什么意思。

我检查了<mx:Label />类中的代码,但是找不到对该类定义的文档所说的direction样式或textFieldClass样式的引用。所以希望这只意味着我的3.6A SDK已经过时了。

但是,如果您查看Flex 4 SDK中UIComponent的代码,它会讨论使用上面提到的两种样式。但是我的Flex 3 SDK中的UIComponent类根本没有提到这些样式。也许你的Flex 3 SDK比我的好,或者也许其他人可以解释这个部分。