AS3:如何使用“as”运算符?

时间:2010-11-05 17:24:31

标签: actionscript-3

var o:Object = {title: 'asad'};
var v:ImageItemVO = o as ImageItemVO;
var v:ImageItemVO = ImageItemVO(o); // throws an error

我的ImageItemVO有一个名为title的公共var。 此代码运行后,“var v”为null。为什么? 有人能给我一个如何让它发挥作用的例子吗?

1 个答案:

答案 0 :(得分:5)

as运算符用于将对象从一种类型转换为另一种类型,但仅在对象可以通过这种方式转换时才有效。如果不能,它会给你null。另一种转换方式(在最后一行上执行它的方式),如果无法转换对象,则会出现错误。

在这种情况下,您根本不想进行投射,因此投射不起作用。相反,你可能想做这样的事情:

var v: ImageItemVO = new ImageItemVO();
v.title = "asad";

或者如果有更多属性,并且您不想手动输入所有属性:

var o: Object = { ... };
var v: ImageItemVO = new ImageItemVO();
for (var key: String in o) {
  v[key] = o[key];
}

此代码会将o中的所有媒体资源复制到v