类型转换
类型转换有两种方式:
1)强制类型转换 a:A = A(b);
2) as运算符 a:A = b as A;
强制类型转换与as操作符一个关键的不同是
ActionScript 3中, 强制类型转换失败,将触发TypeError异常。
as操作符转换失败,将返回目标数据类型的默认缺省值:
数据类型 | 缺省值 |
Boolean | false |
int | 0 |
Number | NaN |
Object | undefined |
String | null |
uint | 0 |
未声明(默认为:Object) | undefined |
其他数据类型 | null |
不过有些时候在使用 as 的时候并不能达到强制转换的目的,而使用第一种方法则可以。在AS3.0类库中最高层类(Top Level classes,所有Top Level classes的列表请看这里)之间进行强制转换时, as 操作符是不起作用的。比如,假如你想要将一个String 类型的字符串 str 转换成 Number 类型的数字 num 时,可能想要这样写:
这样写是没有用的,你只能通过第一种方法来达到强制转换的目的: