2009-06-26 8 views
10

फ्लेक्स में दर्शाता है, मेरे पास क्लास ऑब्जेक्ट है। मैं कक्षा के प्रतिनिधित्व के लिए एक स्ट्रिंग कैसे प्राप्त करूं?फ्लेक्स: दिया गया क्लास ऑब्जेक्ट, क्लास का नाम प्राप्त करें जो

उदा .:

var clazz:Class= String; 
trace(clazz); // this gives "[class String]" but what I want is "String" 

उत्तर

14

flash.utils::getQualifiedClassName समारोह आप के लिए देख रहे हैं ... है एक स्ट्रिंग के रूप में वर्तमान वर्ग:

तो वर्तमान वर्ग रिक्त है, यह एक आधार वर्ग

public function ObjectContructor(){ 
    var _construct:String; 
    var _instance:String; 
    for(var s:String in _global){ 
    if(this.constructor == _global[s])_construct = s; 
    if(this instanceof _global[s] && this.constructor != _global[s])_instance = s; 
    } 
    trace("base class : " +_construct); 
    trace("Current class : " + _instance); 
} 
है
+1

getQualifiedClassName (Clazz) "स्ट्रिंग" लौटाता है, उससे काफी धीमी है। मुझे उम्मीद है कि यह "कक्षा" लौटाएगा! – paleozogt

+0

flash.utils :: getDefinitionByName() एक स्ट्रिंग लेता है और कक्षा देता है। – zenazn

-2

इस काम करता है?

trace(clazz.toString()); 
+0

जैसा कि मैंने कहा था, clazz.toString() "[वर्ग स्ट्रिंग]" – paleozogt

4

आप को पता है सब वहाँ एक वर्ग के बारे में है चाहते हैं, describeType का उपयोग करें। संबंधित, आपको उपयोगी getDefinition और getDefinitionByName मिल सकता है।

वर्णन टाइप सभी एक्सएमएल ऑब्जेक्ट में सभी विवरण लौटाएं।

trace(describeType(String)[email protected]); 

यह सामान्य actionscript है: तुम सिर्फ नाम के लिए देख रहे हैं, की तरह कुछ प्रयास करें। फ्लेक्स ढांचे पर इसकी कोई निर्भरता नहीं है। गुडलक।)

greetz

back2dos

+0

देता है यह काम करता है, लेकिन ध्यान दें कि यह getQualifiedClassName() –

1

यहाँ मेरे द्वारा की गई एक सरल AS2 कोड है कि आप आधार वर्ग मिलता है और करने की अनुमति देता है,

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