AS3:如何使用"as"运算符?

Tot*_*.js 0 actionscript-3

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

我的ImageItemVO有一个名为title的公共var.此代码运行后,"var v"为null.为什么?有人可以给我一个如何让它工作的例子吗?

The*_*heo 5

as运营商用于从一个类型转换的对象到另一个,但只有工作,如果该对象可以铸造的方式.如果它不能它会给你null.另一种转换方式(在最后一行上执行它的方式),如果无法转换对象,则会出现错误.

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

var v: ImageItemVO = new ImageItemVO();
v.title = "asad";
Run Code Online (Sandbox Code Playgroud)

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

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

此代码将复制所有的属性ov.