2016-09-15 54 views
1

我新來的flashbuilder與我一樣裸露......我需要創建索姆值,給它一個默認值,然後進行比較。在actionscript 3中創建枚舉並比較

我有這樣的枚舉類

public class Car 
{ 
    public static const Tesla:int = 1; 
    public static const Ford:int = 2; 
} 

如何啓動與「特斯拉」,怎樣的默認值的新車enumn可變我比較變量?進出口尋找這樣的事情...

public var c:Car = new Car(Car.Tesla); 

if (c == Car.Tesla){ 
// Do something 
} 

編輯,現在更改爲以下...

public final class Car 
{ 

    public static const Tesla:String = "tesla"; 
    public static const Ford:String = "ford"; 

} 

而且在MXML文件...

public var c:String = Car.Tesla; 

    if (c == Car.Tesla){ 
     // Do something 
    } 
+0

您可以定義Car類成員「type」並將其與常量「if(c.type == Car.TESLA){}」進行比較。顯然,Car的構造函數會看起來像這樣:'public function Car(typeProvided:int){this.type = typeProvided; ...}' – Nbooo

+0

你願意告訴我我需要添加到課堂上嗎? – MTplus

+0

你能發佈更多的mxml文件嗎?一個'public var'聲明應該在一個類塊內,而'if'語句應該在一個函數中。這兩個相鄰的設置看起來不正確。 – null

回答

0

我有這個枚舉類

就這樣,我們就在同一個頁面上:它不是枚舉,並且在as3中沒有枚舉。該語言沒有該功能。

如何啓動一個默認值爲「Tesla」的新Car enumn變量,以及如何比較變量?

你不能,因爲Car是一種類型,它有一個靜態屬性是int類型,是完全不同的。

你可以做的是這樣的:

var c:int = Car.Tesla; 

if (c == Car.Tesla){ 
    // Do something 
} 

如果你想有一個Car對象,而不是,一個brand屬性添加到類int類型的,然後你就可以你的常量的值賦給:

var c:Car = new Car(); 
c.brand = Car.Tesla; 

if (c.brand == Car.Tesla){ 
    // Do something 
} 

您也可以在構造函數中添加一個參數並在其中插入值。

Btw。改變

public static const Tesla:int = 1; 

public static const Tesla:String = "tesla"; 

會給你調試過程中獲得更多的有意義的值的機會。內置常量如MouseEvent.CLICK這樣定義。

+0

謝謝,我換到內」靜態常量特斯拉:字符串= 「特斯拉」;」和這個... \t \t變種C:字符串= Car.Tesla; \t \t \t 如果\t(C == Car.Tesla){ \t \t \t//做一些 \t \t} 但我得到了這條線上的錯誤「未定義的屬性訪問」「我F(ç== Car.Tesla){」 – MTplus

+0

@Magnus什麼屬性未定義?你的整個代碼是怎樣的?看起來你有一個無關的範圍問題。請修改您的問題以包含所有相關代碼,即:Car類和使用它的完整代碼。 – null

+0

我現在懂了工作使用這個.... \t公共final類汽車 \t { \t \t \t \t公共靜態常量特斯拉:字符串= 「特斯拉」; \t \t公共靜態常量福特:字符串=「福特」; \t \t \t公共變種類型:字符串; \t \t \t 公共\t功能車(typeProvided:字符串= 「」){ \t \t \t this.type = typeProvided; \t \t} \t \t \t} – MTplus