Flex:基於Flex-config.xml的命令列編譯

來源:互聯網
上載者:User
今天GTalk Flex
討論群上有位朋友就mxmlc編譯的問題和我討論了一天,他要在linux下使用命令列編譯Flex,我就推薦他使用flex-config.xml檔案的方式,為什麼要推薦使用flex-config.xml的方式呢,flex-config.xml涵蓋flex編譯及其他控制的所有選項,對於命令列編譯來說,mxmlc複雜的編譯選項對於命令列的輸入簡直就是噩夢,而使用flex-config.xml可以方便的修改編譯選項,並且一次修改就可以在後續的所有mxmlc編譯過程中儲存下來,還有個重要的地方,flex-config.xml檔案是一個xml檔案,更加的友好,而且其中每個參數都有詳細的注釋,對於我的調整編譯參數也更方便。
 因為Adobe的Flex文檔有很多語焉不詳的地方,為了避免大家在命令列編譯過程中出現混亂,我們現在來仔細解釋基於flex-config.xml編譯過程的細節。 首先我們來對環境做些約定,定義以下幾個變數以方便我們後面的行文:  $SDK:Flex 2 SDK所在目錄   $frameWorks:Flex 2 架構根目錄,一般為$sdk下面的frameworks   $flexApp:flex項目的根目錄。該目錄包含了我們項目的源碼等。   首先我們我們使用mxmlc命令要匯出一份預設的flex-config檔案,注意Linux下匯出配置會報找不到flex-config.xml錯誤,這是個BUG,不要理他就可以了,實際檔案已經匯出成功:
 [bash]  cd $SDK/bin  ./mxmlc -dump-config flex-config.xml  這個匯出的flex-config.xml將是我們以後編譯flex的設定檔,所有的編譯參數同將通過修改該檔案來實現。  接著將上面的匯出的檔案複製到我們的flex應用根目錄中:  [bash]  cp flex-config.xml $flexAPP  因為flex-config設定檔的特殊性,要脫離flex架構使用改檔案的話,我們還需要對flex-config.xml檔案進行一點小小的修改,修複一下路徑指向的問題:
首先修改36行,將其中的:  [xml]           <path-element>libs/playerglobal.swc</path-element> 
修改為:  [xml]           <path-element>${flexlib}/libs/playerglobal.swc</path-element>  接著修改82、83行,將其中的  [xml]           <path-element>libs</path-element>           <path-element>locale/{locale}</path-element>  改為:  [xml]           <path-element>${flexlib}/libs</path-element>
          <path-element>${flexlib}/locale/{locale}</path-element>  繼續修改97行,將其中的:  [xml]              <manifest>mxml-manifest.xml</manifest>  修改為:  [xml]              <manifest>${flexlib}/mxml-manifest.xml</manifest>  最後,295-297行,將其由:  [xml]     <!-- load-config:
load a file containing configuration options-->    <load-config>${flexlib}/flex-config.xml</load-config>  修改為:  [xml]     <!-- load-config: load a file containing configuration options    <load-config>${flexlib}/flex-config.xml</load-config>    -->  修改好後儲存,然後使用如下方法編譯flex:
 [bash]  mxmlc -load-config flex-config.xml +flexlib=$frameWorks Flex_Test.mxml  以上命令,假定您以及將$SDK/bin加入到了PATH中了,參數中的 +flexlib=$frameWorks表示增加token flexlib的定義,定義該值為$frameWorks,以供flex-config.xml中使用。 
這樣我們每次要改變編譯參數直接修改flex-config.xml檔案可以了,flex-config裡面的參數調整,大家可以直接查看flex-config.xml檔案中的注釋,該注釋非常說明的很清楚,但如果還有不清楚,可以大家可以查看
官方文檔,這裡只提一下我們比較常用的幾個地方:    11行,<actionscript-file-encoding>:對應compiler.actionscript-file-encoding編譯參數,設定actionscript的編碼,這個對於異構環境特別重要,特別是系統編碼與WEB伺服器編碼不一致的時候這個參數非常有用。我們建議您將其設定為utf-8。注意該參數預設是關閉的,需要開啟注釋才能啟用。   25行,<debug>:是否編譯debug支援swf檔案,預設為false。    65-68行,<include-libraries>:如果您的項目要使用第三方的SWC類庫,可以在這裡指向你要使用的SWC檔案。同樣該參數預設是關閉的,需要開啟注釋才能啟用。
   76行,<keep-generated-actionscript>:是否保留編譯過程中的中間 actionscript檔案,Flex中的mxml的編譯,實際上是現產生對應mxml的ActionScript代碼,然後在編譯ActiongScript的,這裡保留的就是這個代碼,這些代碼對於您對Flex的研究很有協助,有興趣的朋友可以設定其為true來查看中間AS代碼。該參數預設為false不保留。    120-123行,<source-path>:指向第三方ActiongScript原始碼根目錄,如果您的項目要使用第三方的Ascriptscript源碼,在此設定。注意在目前的目錄下的As源碼,不需要在這裡另外設定。
  另外,提醒使用Linux的朋友,在Linux下進行Flex開發,如果使用命令列編譯的話,我們推薦您使用最近adobe labs發布的
fcsh編譯,fcsh使用了預載入技術,編譯的速度會快點。順便提下,linux下除了命令列的方式,也可以使用
Flex Ant 
Task的編譯方法,最後當然也可以使用
FlexBuilder整合式開發環境編譯的方式。轉自:http://wenku.baidu.com/view/a03036de6f1aff00bed51e22.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.