在编译应用时要使用RSL, 需要使用下列编译选项:
* runtime-shared-libraries 提供运行运行时共享库的位置.
* external-library-path|externs|load-externs 提供编译时库的位置. 编译器需要这个信息动态链接.
使用runtime-shared-libraries选项来指定SWF文件的位置, 这样应用能够在运行时加载RSL. 需要指定SWF与部署位置的相对路径. 比如: 如果把library.swf文件放在web_root/libraries目录下, 而应用在web_root目录下, 那么文件的指定方法是: libraries/library.swf
可以用这个选项指定多个库. 如果指定了多个库, 需要用逗号分隔.
使用external-library-path选项来指定library在编译时的SWC文件或者目录的位置. 编译器会在编译时根据这个选项进行链接的检查. 你还可以使用externs或者load-externs选项来指定其他单独的classes或者xml文件来定义库的内容.
下面是一个编译MyApp应用的命令行示例, 其中使用了2个库:
mxmlc -runtime-shared-libraries=
../libraries/CustomCellRenderer/library.swf,
../libraries/CustomDataGrid/library.swf
-external-library-path=../libraries/CustomCellRenderer,
../libraries/CustomDataGrid MyApp.mxml
库的顺序非常重要, 因为基础类必须先加载.
你先可以使用配置文件, 示例如下:
<compiler>
<external-library-path>
<path-element>../libraries/CustomCellRenderer</path-element>
<path-element>../libraries/CustomDataGrid</path-element>
<path-element>../libs/playerglobal.swc</path-element>
</external-library-path>
</compiler>
<runtime-shared-libraries>
<url>../libraries/CustomCellRenderer/library.swf</url>
<url>../libraries/CustomDataGrid/library.swf</url>
</runtime-shared-libraries>
runtime-shared-libraries选项值是library.swf文件是相对部署目录的路径. external-library-path选项是编译时SWC文件的路径. 因此, 必须先知道库的部署路径.
示例中, 编译时文件结构如下:
c:/appfiles/MyApp.mxml
c:/libraries/CustomCellRenderer/CustomCellRenderer.swc
c:/libraries/CustomDataGrid/CustomDataGrid.swc
library.swf在编译进不是必需的. Flex编译器不验证SWF文件的存在与否, 但会把路径信息编译进行最后的应用代码中.
文件的部署结构如下:
web_root/MyApp.swf
web_root/libraries/CustomCellRenderer/library.swf
web_root/libraries/CustomDataGrid/library.swf