ActionScript 3 中的强制类型转换

假设有一个类叫做Class1,我们声明了一个它的对象 c1,如果想要将它转换成Class2类型:

方法一:

Class2(c1);

方法二:

c1 as Class2;

AS3 中提供了一个新的操作符: as ,并且推荐使用as 进行强制转换。
使用 as 操作符有几个好处:

1.它的效果和第一种方法是一样的。
2.如果类型不兼容无法转换,就会返回null,而不是出错。这样你就可以自定义错误的时候该做什么。
3.没有运行时错误(Run Time Error)提示。

不过有些时候我在使用 as 的时候并不能达到强制转换的目的,而使用第一种方法则可以。
在AS3.0类库中最高层类(Top Level classes)之间进行强制转换时, as 操作符是不起作用的。比如,假如你想要将一个String 类型的字符串 str 转换成 Number 类型的数字 num 时,可能想要这样写:

num = str as Number;

这样写是没有用的,你只能通过第一种方法来达到强制转换的目的:

num = Number(str);

Leave a Reply

Spam Protection by WP-SpamFree