0

我希望一些 Flex (SDK 4.6) 应用程序共享相同的样式表(存储在 CSS 文件中)。但是,我不想沿着这些应用程序的 SWF 分发独立文件,而是想将 CSS 文件嵌入到 Flex 应用程序文件中(就像嵌入图像等一样)。CSS 声明包括字体嵌入,因此(我认为)不可能在运行时加载 CSS。

我已经发现:

  1. 我不能简单地使用<fx:Script source="@Embed(stylesheet.css)" />. 语法错误。

  2. 我不能在应用程序之间共享的某些 MXML 组件中使用内联样式表,因为 CSS 包含组件中不允许的类型声明。

  3. 我可以选择将 CSS 编译为 SWF,但这会创建独立的 SWF 文件(因此我可以将 Flex 框架嵌入 SWF 但不是独立的 CSS ;])。

我希望我遗漏了一些明显的东西,这很容易实现。

4

1 回答 1

2
  • 创建一个库项目(生成一个 swc 文件)
  • 将样式表添加为资源
  • 将此项目(或编译后的 swc)放在其他项目的构建路径上
  • 您现在可以在其他项目中使用此资源:
    <fx:Style source="stylesheet.css" />

例如: 在库项目中,如果 是源文件夹,则文件应自动打包到库中 如果不是,则必须手动添加文件:在 FlashBuilder 中,这可以通过编辑。在命令行上,使用选项添加它。
src/stylesheet.css
src
AssetsBuild path-include-file

使用 swc 作为库依赖项的替代方法是将其定义为主题依赖项。在 FlashBuilderTheme中,项目属性中有一个向导。在命令行上执行:

mxmlc -theme="/path/to/my/theme.swc" MyApp.mxml

如果您将它用作主题,您甚至不必fx:Style在应用程序中包含标签。默认情况下包含 CSS。但我认为它必须命名defaults.css

于 2012-09-20T11:20:54.520 回答