在 Adobe Flex 3 中使用條件編譯

2021-08-24 19:55:00 字數 2533 閱讀 5742

賴勇浩( )譯

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

在編譯應用時傳遞常量給mxmlc編譯器就能夠使用條件編譯——在構建時包含或排除的某些**塊。

最常見的是通過乙個布林值來包含或排除一段除錯或檢測**。

如下面的例子就是一段使用內建布林常量實現條件化的**:

config::debugging

這樣就能夠使用compiler.define

編譯選項了。

常量可以是乙個布林、字串、或數值、或表示式(在編譯時對 actionscript 求值)。

這種常量可以在應用的源**中作為乙個全域性常量訪問。

使用define 選項,可以為常量定義乙個命名空間,相應的變數名和數值使用下面的語法:

-define = namespace

::variable_name

,value

命名空間可以任意配置。

下面的例子在config名字空間裡定義了常量debugging ,它的值為true :

-define=config::debugging,true

在命令列設定多個常量的值,可以多次使用 define 選項;例如:

也可以在 flex-config.xml 檔案中設定這些常量,而不是在命令列,下面是例子說明:

config::debugging

true

config::release

false

flex ant 任務中,也可以用乙個define

元素來定義常量,如下:

使用內建常量
可以 actionscript **中使用內建常量。

布林值可以用來條件化頂層函式定義、類和變數,與 c/c++ 上使用#ifdef 預處理指令的方式大致相同,

但不能使用布林常量條件化元資料或import 語句。

下面是條件化類的定義,在編譯器編譯應用程式時決定使用哪個類定義:

// compilers/mybutton.as

package

}config::release

public class mybutton extends button }}

也可以傳遞字串和數值到應用中去,把它們當作內建常量來使用,就像在 c/c++ 中使用#define

巨集指令一樣。

例如,傳遞乙個名為names::company

的值,能夠替代如下的 actionscript 語句來定義常量:

private static const companyname:string = names::company;

可以傳遞表示式,它將在編譯時求值。

下面的例子計算為false :

-define+=config::myconst,"1 > 2"

下面的例子值為3 :

-define+=config::myconst,"4 - 1"

表示式可包含常量和其他設定值,例如:

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

一般來說,應該為常數加上雙引號,以確保mxmlc編譯器正確地將它們作為乙個單獨的引數。

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

在命令列定義字串,則必須使用用雙引號,對於原來就需要的雙引號,需要轉義(」/」adobe systems/」" 或 「/』adobe systems/』」)或改用單引號(」『adobe systems』」) 。

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

-define+=names::company,"'adobe systems'" -define+=names::ticker,"/"adbe/""

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

names::company

'adobe systems'

names::ticker

"adbe"

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

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

在配置檔案傳遞空字串,用雙引號(「」

)或單引號('')即可 。

在AS3中使用嵌入字型

在flash中,我們常會遇到需要嵌入字型的情況,在以往的flash版本中,嵌入字型相信是大家已經耳熟能詳的事情了,這裡我要寫的是在as3中如何嵌入字型,以及在as3中嵌入字型所要注意的一些問題。首先我們先製作乙個嵌入字型資源檔案,先新建乙個fla,開啟庫,在庫中新建乙個字型,選擇你想要嵌入的字型,我...

在sdk中使用進度條

include windows.h include commctrl.h initcommoncontrols pragma comment lib,comctl32 initcommoncontrols 過程函式的返回值都是lresult,型別都是callback lresult callback...

在CScrollView中使用滾動條

近日需要在mfc中的mdi中使用帶滾動條的檢視。找了許久發現其實很簡單 1 用基類 cscrollview 生成新檢視 cnewview 2 修改mfc自動生的 cnewview oninitialupdate 原內容為 void cnewview oninitialupdate cscrollvi...