本文和大家重点讨论一下Flex3教程 AS2和AS3变量的转换,和类、方法的变化类似,变量也增加了protected,internal修饰符,作用和类、方法的同名修饰作用相同,final关键字不能用来修饰变量,这和Java不同,取而代之的是一个替代var的const关键字,用来标识常量,比如constN:int=100;这和C/C++类似。
Flex3教程 AS2和AS3变量的转换
变量(Variable)的转换
和类、方法的变化类似,变量也增加了protected,internal修饰符,作用和类、方法的同名修饰作用相同,这里就不重复说明了。final关键字不能用来修饰变量,这和Java不同,取而代之的是一个替代var的const关键字,用来标识常量,比如constN:int=100;这和C/C++类似。
还有一个变化是,AS3引入了新的类型*,*代表任意类型(即不作类型检查),虽然AS3中,也可以对变量以及方法返回类型作不申明的设置,但是FlexBuilder会出警告,因为AS3相对AS2来说更静态,所以不建议省略类型申明,如果你实在需要不做类型检查,那么就使用*,比如vardynamicProperty:*;dynamicProperty将可以被赋予任何类型的值,functionmethod():*将可以返回任何类型的值。
◆另一个重要的地方是,Flex3教程中变量的初始值与AS2不同,这在转换的时候要小心,对于AS2,变量在赋值之前,都等于undefined,而AS3中,不同的类型初始值分别如下:
Datatype
Defaultvalue
Boolean
false
int
0
Number
NaN
Object
null
String
null
uint
0
◆Flex3教程中未申明类型(等同于*类型)
undefined
其他的类型,包括用户自定义类.
null
所以,这里得小心了,int,Number,uint,Boolean等类型的变量将不可能具有null或者undefined的值。
【编辑推荐】