如何在ActionScript3中的类实例上获取或设置静态属性

时间:2012-05-05 09:00:49

标签: actionscript-3 flash

例如,我有多个类,如:

MyClassA.propertyAlpha
MyClassB.propertyTango
MyClassC.propertyBravo
MyClassD.propertyBeta
MyClassE.propertyCharlie
MyClassF.propertyRoger
MyClassG.propertyWilco

我得到一个上述类型之一的类的实例和一个静态属性的名称(无关紧要的原因)。

如何使用该信息获取或设置静态属性(无关紧要)?

1 个答案:

答案 0 :(得分:3)

您无法直接在实例上访问该值。它是它的类的属性,因此必须访问它。

有两种方法可以做到这一点。

使用constructor属性:

function getStaticProperty( instance:Object, property:String ) : * {
    return instance.constructor[property];
}

或者使用getQualifiedClassNamegetDefinitionByName获取课程,然后获取属性值:

function getStaticProperty( instance:*, property:String ) : * {
    var className:String = getQualifiedClassName( instance ).replace("::",".");
    var clazz:Class = getDefinitionByName( className ) as Class;
    return clazz[property];
}