所有 Spark 组件都使用 Flash Player 10 中的新文本引擎。这些新类为控制文本度量标准、垂直文本以及连字、双向文本等字形元素提供了低级支持。Flex 4 SDK 在使用文本的所有 Spark 组件中用到了这一功能。有关 Flex 4 提供的文本基元和文本组件的更多信息,请参阅 Spark 文本基元规范*中的“文本基元”部分。
Spark 组件现在还使用 Flash Player 10 和 AIR 1.5 中的 DefineFont4 嵌入字体格式。默认情况下,MX 组件不使用 DefineFont4。将 Spark 和 MX 组件混合在一个应用程序
中并嵌入字体时,这会造成一些开销。如果要对所有组件使用同一种嵌入字体,您需要为项目添加一个额外的主题编译器参数。借助这个新主题,MX 和 Spark 组件都将使用同一个 DefineFont4 字体引擎。在“Properties”(属性)->“Flex Compiler”(Flex 编译器)面板中选中“Use Flash Text Engine in MX components”(在 MX 组件中使用 Flash 文本引擎)选项,即可添加这个编译器参数。(请参阅图 3)。
在 Flex 4 应用程序中使用文本时,我建议使用 Flex 4 的三个 Spark 文本组件之一。它们都使用 flash player 的新文本引擎,并且为设备字体和双向文本提供更高质量的文本、字距微调和旋转。以下是 Flex 4 中提供的文本组件之间的区别。
多行 | 截断 | 可选择 | |
---|---|---|---|
mx.controls.Label | 否 | 是 | 是 |
mx.controls.Text | 是 | 否 | 是 |
spark.components.Label | 是 | 是 | 否 |
spark.primitives.RichEditableText | 是 | 是 | 否 |
spark.primitives.RichText | 是 | 否 | 是 |
可编辑 | HTML 格式化 | 滚动 | |
---|---|---|---|
mx.controls.Label | 否 | 是 | 否 |
mx.controls.Text | 否 | 是 | 否 |
spark.components.Label | 否 | 否 | 否 |
spark.primitives.RichEditableText | 否 | 是 | 否 |
spark.primitives.RichText | 是 | 是 | 是 |
与 Flex 3 一样,您可以使用其他编译器参数编译应用程序:
-compatibility-version=3.0.0.
这个编译器参数允许应用程序使用某些 Flex 3 行为,而不是新的 Flex 4 行为。要获得 Flex 4 中支持使用 -compatibility-version
参数的向后兼容性变化的完整列表,请参阅向后兼容性文档*。
注意:调用 Flex 3 兼容性时,无法选择性地保留一个 Flex 4 行为变化子集。如果使用参数 -compatibility-version=3.0.0
进行编译,您将获得文档中描述的所有 Flex 3 行为。
从 Flex 3 迁移到 Flex 4 有可能没那么痛苦。这个框架旨在尽可能地向后兼容。并且,当您熟悉新架构后,您会发现它其实更“灵活”!有关 Flex 4 功能的更多信息,请访问 Web 帮助*。