使用库项目可以构建可在应用程序之间共享或分发给其他开发人员的自定义代码库。库项目会生成 SWC 文件,该文件是 Flex 组件和其它资源的归档文件。例如,SWC 文件中包含 Flex 框架。
当您创建 Flex 项目时,系统会将 Flex 框架 SWC 文件添加到该项目的库路径中。将库添加到项目后,即可在应用程序中使用那些组件,并且可以为那些组件启用代码提示。
您可以通过访问项目的构建路径属性页来查看和编辑库路径。对于 Flex 项目,请选择“项目”>“属性”>“Flex 构建路径”。
除了提供一种打包和分发组件的便捷方式以外,SWC 库还用作主题,即 Flex 中构建的应用程序的可视外观。SWC 主题文件包含一个 CSS 文件和所有相关图形资源。有关创建和使用主题的更多信息,请参阅关于主题。
为应用程序配置库
可以通过以下方式在项目中使用 SWC 库:
- 合并到应用程序中
- 在将 SWC 文件添加到项目的库路径后,即可在应用程序中使用库中包含的组件。构建应用程序时,只有实际使用的库组件才会编译成应用程序 SWF 文件。换句话说,所有应用程序代码都将合并到一个 SWF 文件中。这是使用库组件的最常见且最直接的方式。
- 位于应用程序的外部
- 可以将库组件与已编译的 SWF 文件分开,以避免将这些组件合并到该文件中。编译器将解析应用程序使用的库中包含的所有代码,但不会将这些代码合并到应用程序 SWF 文件中。此方法的优点是可以使应用程序 SWF 文件变得更小。在运行时,系统将根据需要检索 SWC 文件中包含的组件,并将其加载到内存中。
- 运行时共享库
- 在且只在 Flex 项目中,还可以将 SWC 文件用作运行时共享库 (RSL),该库类似于其它平台上的动态链接库。如果您具有由多个应用程序使用的组件的集合,则可将 SWC 文件用作 RSL。
使用 RSL 在多个应用程序之间共享组件具有多个优点。首先,库在内存中加载一次,即进行缓存,之后使用那些组件的所有应用程序都可以使用该库。其次,库中包含的组件仅在需要时才会加载,这样可以减少应用程序的启动时间,因为每个应用程序的大小都较小。此方法的潜在问题是会将整个 RSL 加载到内存中,而不是加载应用程序所使用的各个组件。有关何时将 SWC 文件用作 RSL 的更多信息,请参阅运行时共享库。
创建 Flex 库项目
创建库项目时,“新建 Flex 库项目”向导会指导您完成相关步骤,提示您提供项目的名称、位置和构建路径信息。
在 Flash Builder 中创建 SWC 文件的第一步是创建一个 Flex 库项目。创建库项目之后,添加组件,指定要包括在 SWC 文件中的库项目元素,然后构建项目以生成 SWC 文件。
- 选择“文件”>“新建”>“Flex 库项目”。
- 输入项目名称,然后指定以下内容:
- 项目位置
- 默认位置为当前的工作空间。在 Windows 平台上,默认工作空间位置为 C:\Documents and Settings\username\Adobe Flash Builder\。在 Macintosh 平台上,默认工作空间位置为 /Users/username/Adobe Flash Builder/。取消选择“使用默认位置”选项后,可以选择其它项目位置。
- 配置
- 可以指定 Flex 库项目是使用通用库还是使用移动设备库。通用库适用于 Web、桌面和移动设备项目。
也可以指定 Flex 库项目是否必须与 Flash Catalyst 兼容。在这种情况下,请使用通用库。对于与 Flash Catalyst 兼容的项目,不支持移动设备库。
- Flex SDK 版本
- 选择“默认”或“特定”。还可以单击“配置 SDK”链接,在“首选参数”主页面上添加、编辑或删除 SDK。
- 包括 Adobe AIR 库
- 如果您的库必须使用 AIR 功能(例如访问 AIR API),请选择此选项。然后,Flash Builder 会更改该新 Flex 库项目的库路径,使该路径包括 airglobal.swc 和 airframework.swc。基于 Web 的 Flex 项目不能使用该库。
如果要编写的通用库仅用于基于 Web 的应用程序或者用于基于 Web 或 AIR 的应用程序,请不要选择此选项。
- 单击“下一步”。
- (可选)设置构建路径信息。例如,可以将文件夹添加到包含要包括在 SWC 文件中的组件的项目源路径中。还可以添加要包括在库项目中的其它项目、文件夹或库 SWC 文件。请参阅在项目中使用 SWC 文件。
- 输入完项目设置后,单击“完成”。
有关创建 Flex 库的最佳实践,请参阅由 Adobe Flex 社区专家 Xavi Beumala 撰写的文章 Three points to remember when creating a library。
创建 AIR 库项目
要为多个 Adobe AIR 项目创建 AIR 代码库,请使用标准的 Flex 库项目向导创建 Adobe AIR 库项目。
- 选择“文件”>“新建”>“Flex 库项目”。
- 指定项目名称。
- 选择“包括 Adobe AIR 库”,然后单击“下一步”。
- 根据需要修改构建路径,然后单击“完成”。有关创建库项目的更多信息,请参阅“Flash Builder 帮助”中的“关于库项目”。
将组件添加到库项目中
可以通过以下方式将组件添加到库项目中:
注: 库项目中包括的所有组件都必须与库项目相关联(直接关联或作为链接资源关联)。
选择要包括在 SWC 文件中的库项目元素
要选择准备包括在 SWC 中的元素(组件和资源),请执行以下步骤:
- 选择“项目”>“属性”>“Flex 库构建路径”。
此时,添加到项目中的组件(直接添加或通过链接到这些组件来添加)会显示在“类”选项卡中。
- 选择要包括在 SWC 文件中的组件类。
- (可选)选择“资源”选项卡,然后选择要包括在 SWC 文件中的资源。
- 进行选择之后,单击“确定”。
构建库项目
如果选择了“自动构建”选项,则选择了要包括在 SWC 文件中的元素之后,系统将立即对该文件进行编译,并将结果文件生成到项目的输出文件夹中。如果您手动构建项目,则可以在需要时通过选择“项目”>“构建项目”或“全部构建”来构建库项目。
构建库项目会生成一个 SWC 文件,您可以与其它应用程序或用户共享该文件。
SWC 文件是一个归档文件,可以使用任何归档实用程序(如 WinZip)打开 SWC 文件。SWC 文件中包括 library.swf 和 catalog.xml 文件。此外,还包括属性文件和其它嵌入式资源。
可以将库导出为开放目录而非 SWC 文件。通常,如果计划将 SWC 文件中的 library.swf 文件用作 RSL,则需要将库导出为开放目录。
通过设置 directory 和 output 编译器选项可以完成此工作。将 output 选项设置为要创建的目录的名称,并将 directory 选项设置为 true,说明您在构建库时需要开放目录而非 SWC 文件。要编辑这些编译器选项,请选择“项目”>“属性”>“Flex 库编译器”,并在“附加的编译器参数”字段中添加这些选项;例如:
-directory=true -output=myOpenDir
Flash Builder 将在项目中创建一个名为 myOpenDir 的目录,并将 SWC 文件的内容存储到该目录中。
在项目中使用 SWC 文件
要在 Flex 项目中使用 SWC 文件,需要将这些文件添加到项目的库路径中。SWC 文件可以位于项目中、Flex 库项目中、工作空间内的共享文件夹或已链接到项目(例如,使用已添加到项目的源路径的共享文件夹)的任何其它位置中。
在应用程序中使用 SWC 文件时,可以通过配置选项来确定是将这些文件静态或动态链接到应用程序、合并到应用程序 SWF 文件中还是放置在应用程序外部并在运行时单独访问。
将 SWC 文件添加到库路径
- 在包资源管理器中选择一个项目,然后选择“项目”>“属性”>“Flex 构建路径”。
- 单击“库路径”选项卡。
- 选择下列任意选项以添加 SWC 文件:
- 添加项目
- 添加 Flex 库项目。
- 添加 SWC 文件夹
- 添加包含 SWC 文件的文件夹。
- 添加 SWC
- 添加已编译的 SWC 文件。
- 添加 Flex SDK
- 添加其它 Flex SDK。如果项目的库路径中已包含 Flex SDK,则系统会禁用此按钮。如果从库路径中删除了现有 Flex SDK,则系统会启用此按钮。单击此按钮后,系统将添加一个 Flex SDK 节点,但不会提示您添加的是哪个节点。要控制将使用哪个 Flex SDK,请选择“项目”>“属性”>“Flex 编译器”。
-
输入或浏览并选择 SWC 文件、项目或文件夹的位置。单击“确定”。
此时,SWC 文件、库项目或文件夹将添加到库路径中。
编译时将 SWC 文件合并到应用程序 SWF 文件中
- 在包资源管理器中选择一个项目,然后选择“项目”>“属性”>“Flex 构建路径”。
- 单击“库路径”选项卡,然后选择并展开 SWC 文件条目以显示 SWC 选项。
- 双击“链接类型”选项。此时,将显示“库路径项选项”对话框。
- 选择“合并到代码中”选项,然后单击“确定”。
此过程等效于使用 library-path 编译器选项。
将 SWC 文件设置为外部库文件
- 在包资源管理器中选择一个项目,然后选择“项目”>“属性”>“Flex 构建路径”。
- 选择“库路径”选项卡,然后选择并展开 SWC 文件条目以显示 SWC 选项。
- 双击“链接类型”选项。此时,将显示“库路径项选项”对话框。
- 选择“外部”选项,然后单击“确定”。
此过程等效于使用 external-library-path 编译器选项。
将 SWC 文件用作 RSL
可以将应用程序的 SWF 文件中的共享资源外部化到独立文件中。这些独立文件可以在客户端上单独进行下载和缓存。共享资源只可传送并加载到客户端一次,但任意多个应用程序在运行时都可以使用这些共享资源。这些共享文件称为运行时共享库(即 RSL)。
- 在包资源管理器中选择一个项目,然后选择“项目”>“属性”>“Flex 构建路径”。
- 选择“库路径”选项卡,然后选择并展开 SWC 文件条目以显示 SWC 选项。
- 双击“链接类型”选项,或者单击“编辑”。此时,将显示“库路径项选项”对话框。
- 将“运行时共享库 (RSL)”选为链接类型。
- 您可以添加 URL 以指定部署应用程序时驻留 SWC 库的位置。如有必要,也可以编辑现有 URL。
- 选择“强制加载 RSL”以在编译时强制加载未使用的 RSL。
- 您可以指定应用程序域,在该域中必须加载跨域 RSL。
将 SWC 文件用作 RSL 可简化手动使用 RSL 的过程。为此,可以从 SWC 文件中提取 SWF 文件,然后设置 runtime-shared-library-path 编译器选项的值。
有关将 SWC 文件用作 RSL 的更多信息,请参阅《使用 Adobe Flex》中的“运行时共享库”。
|