2009-06-26 13 views

Odpowiedz

14

flash.utils::getQualifiedClassName jest funkcja szukasz ...;)

greetz

back2dos

+1

getQualifiedClassName (clazz) zwraca "String". Spodziewałem się, że zwróci "Class"! – paleozogt

+0

flash.utils :: getDefinitionByName() pobiera ciąg znaków i zwraca klasę. – zenazn

-2

to działa?

trace(clazz.toString()); 
+0

Jak już powiedziałem, clazz.toString() zwraca "[String klasy]" – paleozogt

4

Jeśli chcesz wiedzieć wszystko jest o klasę, użyj describeType. Powiązane, może się okazać przydatne getDefinition i getDefinitionByName.

describeType zwraca wszystkie szczegóły w obiekcie XML. Jeśli szukasz po prostu nazwy, spróbuj coś takiego:

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

to ogólne ActionScript. Nie ma zależności od elastycznego szkieletu. Goodluck.

+0

Działa to, ale zauważ, że jest znacznie wolniejszy niż getQualifiedClassName() –

1

tutaj jest prosty kod AS2 robiłem, który pozwala uzyskać klasę bazową i obecna klasa jako wyrażenie:

Jeśli bieżąca klasa jest pusta, jest to klasa bazowa

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); 
}