五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 在 Adobe Flex 3 中使用條件編譯

在 Adobe Flex 3 中使用條件編譯

文章來源:365jz.com     點擊數(shù):384    更新時間:2009-09-28 09:23   參與評論

賴勇浩(http://laiyonghao.com )譯

原文地址: http://bit.ly/3UpSWP

我初接觸的時候,還以為 Flex 3 不支持條件編譯,后來找了好些文檔來看,也沒有看明白,直到找到這篇文章的 livedocs 文檔才明白原來是這么回事。好文檔嘛,就想譯出來給大家看看咯,雖然一如既往地半生熟地譯法,看在我的熱情上,大家就少罵哈……

———————————————–

在編譯應(yīng)用時傳遞常量給mxmlc編譯器就能夠使用條件編譯——在構(gòu)建時包含或排除的某些代碼塊。 最常見的是通過一個布爾值來包含或排除一段調(diào)試或檢測代碼。 如下面的例子就是一段使用內(nèi)置布爾常量實現(xiàn)條件化的代碼:

CONFIG::debugging{
//執(zhí)行調(diào)試代碼。
}

這樣就能夠使用compiler.define 編譯選項了。 常量可以是一個布爾、字符串、或數(shù)值、或表達(dá)式(在編譯時對 ActionScript 求值)。 這種常量可以在應(yīng)用的源代碼中作為一個全局常量訪問。

使用define 選項,可以為常量定義一個命名空間,相應(yīng)的變量名和數(shù)值使用下面的語法:

-define = namespace

::variable_name

,value



命名空間可以任意配置。 下面的例子在CONFIG名字空間里定義了常量debugging ,它的值為true

-define=CONFIG::debugging,true

在命令行設(shè)置多個常量的值,可以多次使用 define 選項;例如:

mxmlc -define=CONFIG::debugging,true -define=CONFIG::release,false MyApp.mxml

也可以在 flex-config.xml 文件中設(shè)置這些常量,而不是在命令行,下面是例子說明:

<compiler>


<define>

<name>CONFIG::debugging</name>

<value>true</value>

</define>

<define>

<name>CONFIG::release</name>

<value>false</value>

</define>

</compiler>

在 Flex Ant 任務(wù)中,也可以用一個define 元素來定義常量,如下:

<mxmlc ... >


<define name="CONFIG::debugging" value="true"/>

<define name="CONFIG::release" value="false"/>

</mxmlc>
actionscripticon_400

使用內(nèi)置常量

可以 ActionScript 代碼中使用內(nèi)置常量。 布爾值可以用來條件化頂層函數(shù)定義、類和變量,與 C/C++ 上使用#IFDEF 預(yù)處理指令的方式大致相同, 但不能使用布爾常量條件化元數(shù)據(jù)或import 語句。

下面是條件化類的定義,在編譯器編譯應(yīng)用程序時決定使用哪個類定義:

// compilers/MyButton.as


package {

import mx.controls.Button;


CONFIG::debugging

public class MyButton extends Button {

public function MyButton() {

super();

// Set the label text to blue.

setStyle("color", 0x0000FF);

}
}



CONFIG::release
public class MyButton extends Button {
public function MyButton() {

super();

// Set the label text to red.

setStyle("color", 0xFF0000);

}

}

}

也可以傳遞字符串和數(shù)值到應(yīng)用中去,把它們當(dāng)作內(nèi)置常量來使用,就像在 C/C++ 中使用#define 宏指令一樣。 例如,傳遞一個名為NAMES::Company 的值,能夠替代如下的 ActionScript 語句來定義常量:

private static const companyName:String = NAMES::Company;

可以傳遞表達(dá)式,它將在編譯時求值。 下面的例子計算為false :

-define+=CONFIG::myConst,"1 > 2"

下面的例子值為3 :

-define+=CONFIG::myConst,"4 - 1"

表達(dá)式可包含常量和其他設(shè)定值,例如:

-define+=CONFIG::bool2,false -define+=CONFIG::and1,"CONFIG::bool2 && false"

一般來說,應(yīng)該為常數(shù)加上雙引號,以確保mxmlc編譯器正確地將它們作為一個單獨的參數(shù)。

傳遞字符串

當(dāng)傳遞字符串,您必須使用雙引號,編譯器才能夠正確地處理它們。

在命令行定義字符串,則必須使用用雙引號,對于原來就需要的雙引號,需要轉(zhuǎn)義(”\”Adobe Systems\”" 或 “\’Adobe Systems\’”)或改用單引號(”‘Adobe Systems’”) 。

下面的例子是在命令行傳遞字符串兩種方法:

-define+=NAMES::Company,"'Adobe Systems'" -define+=NAMES::Ticker,"\"ADBE\""

定義配置文件中的字符串,你也需要使用單或雙引號,例如:

<define>
<name>NAMES::Company</name>
<value>'Adobe Systems'</value>
</define>
<define>
<name>NAMES::Ticker</name>
<value>"ADBE"</value>
</define>

命令行中傳遞空字符串,使用雙引號包圍的單引號,如下:

-define+=CONFIG::debugging,"''" 

在配置文件傳遞空字符串,用雙引號(“” )或單引號( )即可 。

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點擊進(jìn)入論壇

發(fā)表評論 (384人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號