2009-01-22 8 views
6

एक्शनस्क्रिप्ट 3 में, आप ऑब्जेक्ट की कक्षा का संदर्भ कैसे प्राप्त करते हैं?एक्शनस्क्रिप्ट 3 में, आप ऑब्जेक्ट की कक्षा का संदर्भ कैसे प्राप्त करते हैं?

+1

डुप्: http://stackoverflow.com/questions/203969/how-do-i-get-from-an-instance-of-a-class-to-a-class-object-in-actionscript-3 – bzlm

उत्तर

5

आप the constructor property उपयोग कर सकते हैं अपने वस्तु एक वर्ग (डॉक्स से से बनाया गया है:। "एक वस्तु एक वर्ग का एक उदाहरण है, तो निर्माता संपत्ति वर्ग ऑब्जेक्ट के संदर्भ रखती है तो एक वस्तु बन जाता है एक निर्माता समारोह के साथ, निर्माता संपत्ति निर्माता समारोह के लिए एक संदर्भ रखती है "):।

var classRef:Class = myObject.constructor as Class; 

या आप के बाद से इस के कार्यान्वयन में अनावश्यक स्ट्रिंग परिवर्तन जरूरत पर जोर देता flash.utils.getQualifiedClassName() और flash.utils.getDefinitionByName() (नहीं एक बहुत अच्छा तरीका उपयोग कर सकते हैं ये लाइब्रेरी फ़ंक्शन):

var classRef:Class = getDefinitionByName(getQualifiedClassName(myObject)) as Class; 
9

यह ध्यान देने योग्य है कि एक्सएमएल ऑब्जेक्ट्स (एक्सएमएल, एक्सएमएल लिस्ट) इस के लिए एक अपवाद है (यानी। (ऑब्जेक्ट के रूप में नया एक्सएमएल() क्लास == नल के रूप में। कन्स्ट्रक्टर। मैं वापस getDefinitionByName (getQualifiedClassName) करने के लिए गिरने की सलाह देते हैं जब निर्माता का समाधान नहीं होता:

function getClass(obj : Object) : Class 
{ 
    var cls : Class = (obj as Class) || (obj.constructor as Class); 

    if (cls == null) 
    { 
     cls = getDefinitionByName(getQualifiedClassName(obj)); 
    } 

    return cls; 
} 

ध्यान दें कि getDefinitionByName एक त्रुटि है, तो वर्ग बुला कोड से आवेदन डोमेन (एक बच्चे सहित) एक अलग में परिभाषित किया गया है फेंक देते हैं।

संबंधित मुद्दे