2012-05-05 31 views
1

設置一個靜態屬性上一個類的實例。例如,我有多個類,像這樣:如何獲得或在ActionScript3的

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

我得到一個在上述類型之一的類的立場和一個靜態屬性的名稱(無所謂爲什麼)。

如何獲取或設置只有該信息的靜態屬性(無所謂爲什麼)?

回答

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]; 
} 
+0

太好了!謝謝 –

相關問題