2011年9月28日 星期三

Flex Compiler 學習筆記 - 3

再次回顧一次編譯的語法…
mxmlc [要編譯的檔案]
如果帶有參數的話,最好在參數和檔案中間加上「--」分隔比較保險。
mxmlc [參數] -- [要編譯的檔案]

一些個人覺得重要的編譯參數…(因為我是一面看文件一面打的,所以應該會少掉一些還沒看到的參數)

影片設定
mxmlc -default-size 240 240 -default-frame-rate=24 -default-script-limits 5000 10 -- MainApp.mxml
當然在 MXML 或是 ActionScript 可以設定影片(或程式)的寬高,但是將這個參數放在編譯的時候加入,可以增加一些彈性。
這裡的設定會蓋過原來寫在程式碼裡的。
-defualt-size [寬] [高] ︰設定影片(程式)尺寸
-default-frame-rate [影格速率]︰設定影片播放速率(格/每秒)
-default-script-limits [最大處理階層數] [最長處理時間]︰設定程式執行的限制
最大處理階層數在官方文件中指的是「堆疊數」應該指的是程式被一層一層呼叫,最多容許多少層,預設值是 1000
最長處理時間的單位是秒,若一個方法執行超過這個時間,會被視為沒回應,被強制終止。預設值是 60 ,只能設定比它小的數值。

編譯函數庫來源
mxmlc -library-path+=MyLibSwc.swc foo.mxml
程式寫了一段時間,就會慢慢開始產生一些共用的類別,獨立在所有專案之外。或是使用到一些第三方提供的套件。
在這個例子中,是利用「+=」將MyLibSwc.swc 加到引用列表之中。
語法上、「+=」後頭不能接上多個 swc 或目錄,所以得多次使用進累加,如…
mxmlc -library-path+=MyLib1.swc -library-path+=MyLib2.swc foo.mxml

而如果是使用設定檔,則可能會長這個樣子…
<compiler> 
    <library-path append="true"> 
        <path-element>libs</path-element> 
        <path-element>libs/player</path-element> 
        <path-element>libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}</path-element> 
        <path-element>locale/{locale}</path-element> 
        <path-element>c:/mylibraries/MyButtonSwc.swc</path-element> 
    </library-path> 
</compiler>

增益編譯
mxmlc -incremental=true MyApp.mxml
大部分的狀況,尤其在在「測試、修改」的循環之中,程式往往只修改一小部分,就再一次進行編譯。
這個參數會在輸出檔案的同一個地方,建立一個「輸出檔案.cache」的檔案。
再下一次編譯的時候,會去檢查哪一個檔案更動,只編譯更動的部分,來減少編譯需要花費的時間。

輸出檔案
mxmlc -output=OutputName.swf MyApp.mxml
個人覺得在 flash builder 中,預設將編譯結果輸出在 bin-debug 目錄下,是一個很不錯的功能。
不過 mxmlc 的預設,是將結果輸出在編譯檔案的相同目錄下,如果使用 subversion 或是其它版本管理工具,就有可能會不小心把編譯的結果也送到版本管理系統中,浪費寶貴的硬碟空間。
這個時候就需要使用這個選項來指定輸出檔案的位置。

沒有留言:

張貼留言