• <tfoot id="ukgsw"><input id="ukgsw"></input></tfoot>
    
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      Flex compc & ant 編譯

       地域-幽靈 2011-05-25

      當我們的類庫在Flex Builder中可以編譯通過時,那自動化編譯(ant)主要是根據(jù)在Flex Builder中設置的參數(shù)一致,基本就可以采用compc命令編譯出一個swc文件。在編譯過程中可能會遇到各種問題,不過不要煩躁,找到每個問題的原因,自然就找到了解決辦法,下面總結一下在做Flex自動化編譯過程中遇到的問題,希望可以幫助到大家。

      在做ant編譯之前,先看一下工程的具體信息,右鍵工程—屬性,切換到Flex Library Build Path中,我們可以看到四個選項卡,Classes\Assers\Source Path\Library Path,那也就是說明我們用編寫腳本的時候只需要指定這四項就可以了,另外,在Flex Library Compiler中可以看到是en_US\zh_CN,證明要做中英文資源化,因此我們自動化編譯的時候需要將資源化文件引入,具體國際化會在后面介紹。

      1.    Flex Embed資源錯誤Unable to transcode asset處理

      <mx:Image id="img_border" source="@Embed('../assets/border.png')" visible="false" width="100%" height="100%"/>

      一段簡單的代碼flex編譯居然報錯:

      Unable to transcode ../assets/border.png.

      解決方法很簡單,

      將 '../assets/border.png' 改為 '/../assets/border.png'

      就是在前面加個斜杠。

      2.    Flex國際化

      首先先介紹下國際化:

      Flex國際化一般采用的是類似struts的bundle類似的方法,至于好處嘛會使用STRUTS的人都應該知道。
      直接在項目中寫.properties文件,具體做法如下:
      在項目上點擊右鍵,選擇Properties。
      然后選擇Flex Compiler,在Additional Compiler arguments下面已經(jīng)配置好了語言包,

      默認為-locale en_US。
      這時我們可以用一個locale目錄來簡單定制我們額外設置(當然不包括Flex內部控件的語言)的語言設置。
      比如改為:-locale=en_US -source-path+=g:\flexproj\locale\{locale}。這樣在g盤的flexproj目錄下建立一個locale目錄。
      然后目錄下放置包含我們要擴展的語言文件的文件夾就可以了。比如:g:\flexproj\locale\en_US。
      注意:locale下面的目錄名應該和-locale=設置的名稱一致。
      那么這樣,我們就可以使用額外的語言設置了。

      舉個例子吧:
      查看項目屬性里Additional Compiler arguments配置為
      -locale+=en_US -source-path+=g:\flexproj\testgoufang\locale\{locale}
      然后在對應的locale目錄下添加國際化資源文件,
      g:\flexproj\testgoufang\locale\en_US\strings.properties
      這一部分跟struts相似。
      里面的內容為鍵=值的形式,如:
      Title=測試項目
      User=用戶名
      Password=密碼
      …………
      …………
      使用的時候可以通過[ResourceBundle]元數(shù)據(jù)標簽來綁定locale文件,如:
      <mx:Metadata>
                                    [ResourceBundle("strings")]
      </mx:Metadata>
      即綁定上文提到的strings.properties文件,然后我們可以通過ResoueceManager來讀出其中的內容,比如:
      var Title : String = resourceManager.getString("strings", 'Title');
      或者綁定到控件:
      [Bindable]
      private var Title:String;
      …………
      Title = resourceManager.getString("strings", 'Title');
      …………
      <mx:Label text="{Title}"/>
      如此多個項目共享統(tǒng)一資源

      如果編譯的時候沒有引用資源文件,則會報相應的資源文件未找到。

      在build.xml中添加資源文件即可

      <source-path path-element="${project.dir}/locale/en_US"/>

      <source-path path-element="${project.dir}/locale/zh_CN"/>

      3.    編譯后的mx文件夾下所有圖片大小為0字節(jié)

      Mx中包括controls和container文件夾,主要包括用到的Flex控件的圖片,因此需要在source-path中指定圖片的位置,否則找不到圖片,大小就為0嘍;

      加入以下腳本即可:

      <source-path path-element="${projects.framework}/src"/>

      大概目錄位置是E:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\projects\framework\src 里面包括一個mx文件夾,是Flex用到的所有資源圖片的存在位置。

      4. 工程目錄中包括mxml時編譯不到swc中

      因為我們編譯的時候首先是讀取src文件夾中的所有類,然后指定compc參數(shù)的include-classes參數(shù),這時只是指定的所有as文件,而mxml是不屬于某個包里面的,因此這里需要使用include-sources參數(shù)來指定。

      具體代碼如下:

          <include-sources dir = "${project.dir}\src\com\supermap\web\controls" includes = "Compass.mxml" />

      Build.xml文件內容如下所示:

      <project name="Web.swc" basedir="." default="main" >

      <taskdef resource="flexTasks.tasks" classpath="E:\Flex\flexTasks\lib\flexTasks.jar" />

      <property name="FLEX_HOME" value="E:\Progra~1\Adobe\FlexBu~1\sdks\3.2.0" />  

      <property name="project.dir" value ="E:\FlexProject\FlexClient60\FlexClientLib" />

      <property name="output.file" value="Web.swc" />

      <property name="projects.framework" value="E:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\projects\framework"/>

      <target name="main" depends="clean, log, compc" />

      <!-- deletes and recreates the compc directory -->

      <target name="clean">  

               <delete dir="${project.dir}\compile" failonerror="true"/>  

               <mkdir dir="${project.dir}\compile"/>

               <echo>${Root}\bin</echo>

      </target>

      <!-- runs the compc.exe compiler on the source -->

      <target name="compc">  

               <echo>${Root}/src</echo>

                         <fileset dir="${project.dir}\src" id="src.files">    

                                  <include name="**\**"/>    

                          </fileset>   
           
                         <!—遍歷src文件夾下的所有as文件-->

                         <pathconvert    

                           property="evaFramework_classes"    

                           pathsep=" "    

                           dirsep="."    

                           refid="src.files"    

                         >   
                                 <map from="\" to="/"/>    

                                  <map from="${project.dir}\src\" to=""/>    

                                  <mapper>    

                                        <chainedmapper>    

                                              <globmapper from="*.as" to="*"/>    

                                         </chainedmapper>    

                                  </mapper>    

                          </pathconvert>                  

                         <!--輸出所有類-->

                         <echo>${evaFramework_classes}</echo>

                         <!--開始編譯類庫文件-->

                         <compc output="${project.dir}\compile\${output.file}"    

                                   locale="en_US,zh_CN"   

                                   include-classes="${evaFramework_classes}"    

                                   optimize="true"

                                   benchmark="true"

                                  strict = "true"

                                  debug="true"

                                  as3="true"

                                  actionscript-file-encoding = "utf-8"

                                  allow-source-path-overlap = "true"

                                  use-resource-bundle-metadata = "true"

                       >                            
                                  <!--編譯源文件-->

                                  <source-path path-element="${project.dir}/src" />

      <!--如果類庫做了國際化,那么需要引入國際化資源文件,也就是工程目錄\locale\下面的所有資源文件(類型為.properties)-->

                                  <source-path path-element="${project.dir}/locale/en_US"/>

                                  <source-path path-element="${project.dir}/locale/zh_CN"/>
                                
      <!—需要指定引用圖片的資源文件,否則在編譯好的mx文件夾下的所有圖片都是0字節(jié)-->

                             <source-path path-element="${projects.framework}/src"/>

                                   <!-- List of SWC files or directories that contain SWC files. -->  

                                   <!—注意這里可以指定類庫文件的目錄啊,呵呵-->

                                   <compiler.include-libraries dir="${FLEX_HOME}" append="true">

                                           <include name="/frameworks"/>

                                   </compiler.include-libraries>

                  <compiler.include-libraries dir="${project.dir}" append="true">   

                      <include name="/lib" />   

                  </compiler.include-libraries>   

              </compc>   

      </target>  

      <!-- writes compc output to log file: compc-log.log -->

      <target name="log">  

               <record name="${project.dir}\compile\compc-log.log" action="start" append="true" />

      </target>

      </project>


      借鑒資源:

      http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html

      http://ericyou./blog/298336

      http://www./showdiary.jsp?id=219

      http:///questions/1400458/why-are-some-of-my-assets-0-byte-in-size-when-i-build-a-component-using-compc

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 人妻在卧室被老板疯狂进入| 精品少妇人妻AV无码久久 | 最近中文字幕免费MV在线视频| 全国最大成人网站| 人人澡人摸人人添| 免费一区二区无码东京热| 国产福利社区一区二区| 亚洲 欧洲 无码 在线观看| 欧美人与禽2O2O性论交| 亚洲日韩性欧美中文字幕| 精品久久久久久无码专区不卡| 亚洲国内精品一区二区| 影音先锋女人AA鲁色资源| 精品视频不卡免费观看| 成年女人18级毛片毛片免费| 精品人妻中文字幕在线| 九九久久精品国产免费看小说| 中文字幕精品人妻丝袜| 老师在办公室被躁在线观看| 久青草国产在视频在线观看| 亚州少妇无套内射激情视频| 亚洲欧美中文日韩V日本| 久久精品娱乐亚洲领先| 在线中文字幕有码中文| 精品中文人妻在线不卡| 两个人的WWW免费高清视频| 免费VA国产高清大片在线| 亚洲av无码之国产精品网址蜜芽| 五月丁香综合缴情六月小说| 久久亚洲国产精品久久| 欧美午夜片欧美片在线观看| 国产在线观看免费人成视频| 日韩精品中文字幕人妻| 亚洲成AV人片不卡无码手机版 | 国厂精品114福利电影免费| 在线看片无码永久免费视频 | 强开少妇嫩苞又嫩又紧九色| 亚洲鸥美日韩精品久久| 精品无人区无码乱码毛片国产 | 国产成人精品999在线观看| 粗大的内捧猛烈进出小视频|