国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Flex compc & ant 編譯

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

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

1.    Flex Embed資源錯(cuò)誤Unable to transcode asset處理

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

一段簡(jiǎn)單的代碼flex編譯居然報(bào)錯(cuò):

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

解決方法很簡(jiǎn)單,

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

就是在前面加個(gè)斜杠。

2.    Flex國(guó)際化

首先先介紹下國(guó)際化:

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

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

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

如果編譯的時(shí)候沒有引用資源文件,則會(huì)報(bào)相應(yī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 里面包括一個(gè)mx文件夾,是Flex用到的所有資源圖片的存在位置。

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

因?yàn)槲覀兙幾g的時(shí)候首先是讀取src文件夾中的所有類,然后指定compc參數(shù)的include-classes參數(shù),這時(shí)只是指定的所有as文件,而mxml是不屬于某個(gè)包里面的,因此這里需要使用include-sources參數(shù)來指定。

具體代碼如下:

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

Build.xml文件內(nèi)容如下所示:

<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>

                   <!--開始編譯類庫(kù)文件-->

                   <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" />

<!--如果類庫(kù)做了國(guó)際化,那么需要引入國(guó)際化資源文件,也就是工程目錄\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. -->  

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

                             <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.javaeye.com/blog/298336

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

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
整理一個(gè)ANT在J2EE項(xiàng)目中的應(yīng)用,含預(yù)編譯JSP和打包WAR/EAR擋!
Scala Ant Tasks
一個(gè)完整的Jenkins下的ant build.xml文件
CMakeLists
cmake總結(jié)
how to setup a basic struts project using eclipse ide
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服