2016-09-15 35 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