这是什么意思 - > ClassA(obj as MovieClip)或var var_a:ClassA = new SomeOtherClass()

时间:2011-11-15 18:35:13

标签: flash actionscript-3 actionscript

我真的对这些类型的陈述感到困惑:

这是什么意思:

  1. 施法时:

    var xyz = ClassA( obj as MovieClip );

  2. 声明/定义时:

    var xyz:ClassA = new SomeOtherClass();

  3. 我的意思是,在上面的相同陈述中如何使用2个不同的类?这是因为继承关系吗?

    由于 诉

1 个答案:

答案 0 :(得分:3)

var xyz:ClassA = new SomeOtherClass()

xyz被声明为具有类型ClassA,因此只有在SomeOtherClass是ClassA的子类时,此赋值才有效。如果没有,则在编译时将抛出错误。

var xyz = ClassA( obj as MovieClip )

此语句的结果是双重转换:首先,obj转换为MovieClip,然后转换为ClassA。如果这两种类型中的任何一种不在obj的类型层次结构中,则结果为null。 除非obj不是MovieClip(在这种情况下,尝试将null转换为ClassA将在运行时导致空指针异常),不会出现错误,因为您可以为xyz分配任何内容 - 没有变量类型是指定。