在项目中用as强制转换经常会出错, why?
![](http://blog.chinaunix.net/blog/image/editor/man/17.gif)
在as3中类型两种用法;
1 A a = A(b);
2 A a = b as A;
后一种是最常用的,因为如果类型不兼容无法转换,就会返回null。估计是api里面已经帮开发人员try...catch好类型转型错误了(运行时错误),程序可以省一个调用try的开销,也不用去理会它抛出什么错误。但在引用它的时候记得if(a)一下,否则有时候会抛出空对象错误。 WHY? 不是1等同2么。 不是的。 在AS3类库中最高层类(Top Level classes)之间进行强制转换时, as 操作符是不起作用的。比如 bytes与xml等。
所以结论有二
1
try
{
A a = A(b);
}
catch()...
2 A a = as A;
阅读(1418) | 评论(0) | 转发(0) |