在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
史蒂芬
修改
声明添加到代码
答案 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
,而类型转换结果在这种情况下的例外情况。