所有 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)。
图 3.允许 MX 组件使用 DefineFont4 字体引擎。
在 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 | 是 | 是 | 是 |