如何在AS3中获取类的别名字符串?

时间:2009-01-06 17:05:03

标签: actionscript-3

var alias:String = 'models.User';
registerClassAlias(alias, models.User);

// If I have the alias, then
// I can get the class like this:
var klass:Class = flash.net.getClassByAlias(alias);

// How do I do the reverse
// (get the alias from the class)?
//
// I want to do this, but I can't find a 
// 'getAliasByClass' function.
alias = getAliasByClass(klass);

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

getQualifiedClassName应该可以做到这一点。

alias = flash.utils.getQualifiedClassName( klass );
// should return: "models::User"

无论哪种方式,都可以传递类引用或类的实例。

答案 2 :(得分:0)

如上所述,您可以调用flash.utils.describeType()并在Actionscript对象的类上使用“reflection”来查询对象的属性,属性和方法。

例如,ObjectCodec.as的以下代码段似乎使用“@”检索别名属性:

override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
{
        var desc:XML = describeType(o);
        var classAlias:String = desc.@alias;
        //...
}