在編譯應用時要使用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
?