云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在编译应用时要使用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

 




只有注册用户登录后才能发表评论。


网站导航: