本文是ActionScript3 Tips and Tricks系列阅读笔记之一Determine Instance Class or Superclass,这里是原文地址

在ActionScript3中,可以使用getQualifiedClassName函数( flash.utils.getQualifiedClassName))获取实例的类名:

1
2
var sprite:Sprite = new Sprite();
trace(getQualifiedClassName(sprite)); // 输出"flash.display::Sprite"

还可以使用getQualifiedSuperclassName函数 ( flash.utils.getQualifiedSuperclassName) ) 获取超类的名称:

1
2
// 输出"flash.display::DisplayObjectContainer"
trace(getQualifiedSuperclassName(sprite));

如果想把字符串转换成类引用,可以使用getDefinitionByName函数( flash.utils.getDefinitionByName) ):

1
2
// 输出[class Sprite]
trace(getDefinitionByName("flash.display::Sprite"));

而使用describeType函数( flash.utils.describeType) )

则可以获取非常详细的类的信息:

1
2
var s:String = "hello";
trace(describeType(s));

输出:

1
2
3
4
5
6
7
<type name="String" base="Object" isDynamic="false" isFinal="true" isStatic="false">
<extendsClass type="Object"/>
<constructor>
<parameter index="1" type="*" optional="true"/>
</constructor>
<accessor name="length" access="readonly" type="int" declaredBy="String"/>
</type>

下载源文件:

留言