1.4節. 在Flex Builder中設定MXML編譯器選項
1.4.1. 問題
我想設定MXML編譯器選項
1.4.2. 解決辦法
在項目屬性對話方塊中設定編譯器參數
1.4.3. 討論
MXML編譯器,就是mxmlc,它把ActionScript和MXML檔案編譯為SWF檔案以供Flash Player運行。當你在Flex Builder中運行或調試Flex程式時,MXML編譯器會被調用,檔案作為編譯器參數被傳遞過去,當你調式時會把調試版的SWF作為參數傳遞給MXML編譯器。例如你可以把外部的庫檔案路徑作為參數,或允許SWF檔案訪問本地檔案或設定背景顏色。
要想改變項目的編譯器設定,可右擊項目名稱並選擇Properties(Figure 1-9),
Figure 1-9. 更改項目屬性
在下面的對話方塊中(Figure 1-10), 選擇Flex Compiler,這裡有一些選項控制SWF檔案如何被編譯,在輸入框裡可添加額外的編譯器參數,可一次性添加多個參數,每個參數前加上(-)符號. 參數之間用空格分開。
Figure 1-10. 設定編譯器選項
下面是一些常見的編譯器參數:
verbose-stacktraces
指定SWF在運行時異常資訊中包含行號和檔案名稱,這將使產生的SWF檔案更大些,帶verbose-stacktraces的SWF還是和調試版本的SWF有區別的。
source-path path-element
添加其他原始碼目錄或檔案,可以使用萬用字元來添加目錄中所有檔案或子目錄,也可使用+= 在預設路徑上來追加新參數,例如
-source-path+=/Users/base/Project
include-libraries
指定SWF檔案被編譯到程式中並連結庫中所有類和資源到SWF上。如果你的程式需要載入其他模組這個參數就很有用了。
library-path
跟include-libraries選項類似,但是只引用類和資源以供SWF使用,這樣可保持SWF檔案的可管理性。
locale
指定SWF檔案的地區屬性,例如使用-locale=es_ES 指定SWF地區為西班牙
use-network
指示SWF是否可以訪問網路服務或者應用標準的Flash Player權限原則。例如-use-network=false 指定SWF有本地檔案系統訪問權但不能訪問任何網路服務,預設為true
frames.frame
啟動應用程式資源代理流,然後通過ModuleManager類公布其介面,在特殊情況下,比如在代碼中已經引入資源但是並不需要移動資源到外部SWF檔案,這時此參數可使應用程式啟動時間大大減少,這是一個很複雜但很有用的參數。
keep-all-type-selectors
保證所有樣式資訊都被編譯進SWF,甚至是程式沒有用到的。這點非常重要,因為有可能程式載入的其他組件需要這些樣式資訊。預設值為false,也就是說沒有用到的樣式資訊不會被編譯進SWF。
設定好編譯器參數後,點擊Apply按鈕儲存。