云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          這個例子包括了應(yīng)用中使用RSL的完整流程。使用命令行進(jìn)行編譯,但是你可以使用FlexBuilder用相同的過程來創(chuàng)建使用RSL。

          記住SWC文件是一個包含SWF文件的二進(jìn)制文件,而SWF文件包含運(yùn)行時的定義和附屬元數(shù)據(jù)。你可以用壓縮工具比如WinZip來打開SWC文件。
          在使用RSL之前,首先需要了解如何靜態(tài)鏈接一個SWC文件。

          在這個例子中,應(yīng)用有一個app.mxml文件,使用ProductConfigurator.as和ProductView.as。文件目錄如下:

          project/src/app.mxml
          project/libsrc/ProductConfigurator.as
          project/libsrc/ProductView.as
          project/lib/
          project/bin/


          編譯這個應(yīng)用時,可以使用source-path選項將/libsrc目錄下的類鏈接進(jìn)來,方法如下:

          cd project/src
          mxmlc -o=../bin/app.swf -source-path+=../libsrc app.mxml

          這個命令添加ProductConfigurator和ProductView類到SWF文件中。


          如果要創(chuàng)建庫,可以用compc來創(chuàng)建SWC文件,用下面的命令:

          cd project
          compc -source-path+=libsrc -debug=false -o=lib/mylib.swc
          ProductConfigurator ProductView

          注意要將debug選項設(shè)置為false. 生成結(jié)果是project/lib/mylib.swc文件,包含ProductConfigurator和ProductView兩個類。

          現(xiàn)在可以使用新創(chuàng)建的庫來重新編譯應(yīng)用,用library-path選項來指定庫,方法如下:

          cd project/src
          mxmlc -o=../bin/app.swf -library-path+=../lib/mylib.swc app.mxml

          創(chuàng)建庫以后,你可以用RSL來重新編譯生成應(yīng)用。完整的步驟如下:

          ?? 1. 指示編譯器不要將庫鏈接到應(yīng)用中。
          ?? 2. 準(zhǔn)備RSL,以便于在運(yùn)行時使用。
          ?? 3. 指示編譯器生成附加元數(shù)據(jù)用于加載RSL。


          第一步是指定編譯生成應(yīng)用時庫中的哪些類需要排除在外。主要是使用external-library-path選項,如下面的例子所示:

          cd project/src
          mxmlc -o=../bin/app.swf -external-library-path+=../lib/mylib.swc app.mxml

          如果你嘗試運(yùn)行app.swf,F(xiàn)lash Player會拋出一個運(yùn)行時異常。因為ProductConfigurator和ProductView類還未定義。external-library-path配置選項告訴編譯器編譯這些庫,但是忽略了定義。你也可以使用externs選項,但是一般來說,使用external-library-path更方便。

          下一步是準(zhǔn)備RSL以便于能在運(yùn)行時找到它。首先從SWC文件中將library.swf解壓出來。

          下面是如何解壓的例子:

          cd project/lib
          unzip mylib.swc library.swf
          mv library.swf ../bin/myrsl.swf

          此例子中將library.swf更名為myrsl.swf,并把它移動到應(yīng)用SWF文件所在的目錄。

          最后一步是使用RSL重新編譯應(yīng)用。主要是使用runtime-shared-libraries選項,方法如下:

          cd project/src
          mxmlc -o=../bin/app.swf -external-library-path+=../lib/mylib.swc
          -runtime-shared-libraries=myrsl.swf app.mxml

          現(xiàn)在新的SWF文件會在運(yùn)行應(yīng)用前動態(tài)加載RSL了。




          評論

          # re: 使用RSL(Runtime Shared Libraries)來減小Flex生成的SWF文件的大小(VI) -- 使用RSL的完整示例  回復(fù)  更多評論   

          2008-10-17 17:47 by wallen
          亂七八糟,一點(diǎn)條理都沒有。

          # re: 使用RSL(Runtime Shared Libraries)來減小Flex生成的SWF文件的大小(VI) -- 使用RSL的完整示例  回復(fù)  更多評論   

          2009-01-06 15:26 by 枯の靈
          更加堅定了我用Flex的信心
          主站蜘蛛池模板: 开远市| 鄯善县| 大埔区| 长垣县| 正定县| 方城县| 麻阳| 腾冲县| 新建县| 喀什市| 襄垣县| 肇州县| 祁门县| 依兰县| 闸北区| 呼图壁县| 尉犁县| 泸溪县| 岱山县| 叶城县| 双峰县| 甘南县| 江津市| 宿州市| 丘北县| 逊克县| 丰顺县| 仙游县| 厦门市| 清远市| 旬阳县| 偏关县| 西峡县| 凭祥市| 湟中县| 乌鲁木齐县| 安吉县| 遂川县| 沁阳市| 福安市| 兴国县|