这两种在ActionScript 3中进行类型转换的方式有何不同?

时间:2010-10-21 15:58:59

标签: flash actionscript-3

Lynda.com标题中"ActionScript 3.0 in Flash CS3 Professional - Beyond the Basics" Todd Perkins展示了一种类型转换的方法

var xml: XML;
xml = event.target.data as XML  

不起作用,而

var xml: XML;
xml = XML(event.target.data)  

一样。这两种形式不应该以同样的方式行事吗?它们有什么不同?
TIA
史蒂芬

修改
声明添加到代码

2 个答案:

答案 0 :(得分:4)

基本上它们是不同的XML(event.target.data)意思是“将其强制转换为该类型”,其中event.target.data as XML表示“假装它是XML”。

前者与您在其他语言(如Java)中所期望的相同。这是一种有用的方法,让代码不需要在强制转换周围有一个try-catch块。使用as将返回第一个操作数(如果它是正确的类型),否则返回null。

如果您需要更多信息,请查看as operator

答案 1 :(得分:1)

如果左操作数(as)不是右操作数的实例(期望类型= null),则event.target.data运算符返回XML,而类型转换结果在这种情况下的例外情况。