AS3中类的枚举
AS3中类的枚举:枚举是我们创建的自定义的数据类型,用于封装一小组值。AS3并不支持具体的枚举工具,不过,我们可以使用类或静态常量创建枚举,要用到的关键字有final(禁止继承)、static(静态)、const(常量声明)。例如有一个MyEvent的类,里面有两个静态常量属性,存储了String类型的值。
package {
public final class MyEvent{;
public static const ENTER_FRAME:String="enterFrame";
public static const COMPLETE:String="complete";
}
}
在同一个包内的fla文件的时间轴上输出其中一个属性的值
trace(MyEvent.ENTER_FRAME);//输出enterFrame
AS3中所有的枚举类只包含String、int、uint类型的变量(常量),还有创建枚举的第二种方法:可以使用枚举的静态属性创建单独的类。这种方法的特殊之处在于:每个静态属性都包含一个类实例,而不是字符串或整数值。例如下面的Day类,即一个类用其自身的实例作为静态属性。
package {
public final class Day{;
public static const MONDAY:Day=new Day();
public static const TUESDAY:Day=new Day();
public static const WEDNESDAY:Day=new Day();
public static const THURSDAY:Day=new Day();
public static const RFIDAY:Day=new Day();
public static const SATURDAY:Day=new Day();
public static const SUNDAY:Day=new Day();
}
}
在同一个包内的fla文件的时间轴上写如下代码:
function getDay():Day {
var date:Date=new Date();
var retDay:Day;
switch (date.day) {
case 0 :
retDay=Day.MONDAY;
break;
case 1 :
retDay=Day.TUESDAY;
break;
case 2 :
retDay=Day.WEDNESDAY;
break;
case 3 :
retDay=Day.THURSDAY;
break;
case 4 :
retDay=Day.FRIDAY;
break;
case 5 :
retDay=Day.SATURDAY;
break;
case 6 :
retDay=Day.SUNDAY;
break;
}
return retDay;
}
var dayOfWeek:Day=getDay();
trace(dayOfWeek);//输出[object Day]
以上代码如在“严谨模式”下编译,会报编译器错误:
1119: 访问可能未定义的属性 FRIDAY (通过 static 类型 Class 引用)。
源:retDay=Day.FRIDAY;
没有评论 ▼