如何在Actionscript3中找到var / name的类型?

时间:2009-08-28 03:26:44

标签: actionscript-3 types

呃,就是这样!......

5 个答案:

答案 0 :(得分:25)

flash.utils.getQualifiedClassName(...)

您可以将任何ActionScript值传递给此函数,以获取包含其完全限定类名的String。

答案 1 :(得分:8)

答案 2 :(得分:7)

如果您只需要对其类型进行最基本的描述,那么您可以使用typeof运算符,如下所示:

var foo:String = "test";
trace( typeof foo );
// string

虽然这很方便,但它有一个缺点。这就是它总是给出变量的基本类型,例如:

var foo:Array = ["A","B","C","D"];
trace( typeof foo );
//object

var bar:int = 5;
trace( typeof bar );
//number

var hummer:Car = new Car();
trace( typeof hummer );
//Vehicle

哪些技术上都是正确的,但可能不是您想要的。

如果您想要更具体的类型(例如ArrayString等),那么您需要使用getQualifiedClassName()包中稍微复杂的flash.utils函数:

import flash.utils.getQualifiedClassName;

var foo:Array = ["A","B","C","D"];
trace( getQualifiedClassName( foo ) );
//Array

var bar:int = 5;
trace( getQualifiedClassName( bar ) );
//int

var hummer:Car = new Car();
trace( getQualifiedClassName( hummer ) );
//Car

typeof documentation

getQualifiedClassName() documentation

答案 3 :(得分:5)

如果内存对我有用,方法 flash.utils.describeType 会向您提供一个xml文档,其中包含对象/类型的所有反射类型信息。

确实:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#describeType%28%29

答案 4 :(得分:2)

is运算符是最新的解决方案:

var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite);           // true

请参阅http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6#is