2009-08-28 3 views

Antwort

25
flash.utils.getQualifiedClassName(...) 

Sie können einen beliebigen Actionscript-Wert für diese Funktion übergeben Sie einen String mit seinen vollständig qualifizierten Klassennamen zu erhalten.

2

Der is Betreiber ist die auf dem neuesten Stand Lösung:

var mySprite:Sprite = new Sprite(); 
trace(mySprite is Sprite);   // true 

Siehe http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6#is

+0

Das beantwortet jedoch die Frage nicht, die Frage ist "gegeben eine Variable, wie finde ich ihren Typ", nicht "gegeben eine Variable, wie kann ich sagen, ob es ein gegebener Typ ist". –

+0

Wenn der Benutzer die möglichen Typen von var kennt oder herausfinden möchte, ob die Variable ein bestimmter Typ ist oder nicht, funktioniert diese Lösung. Einige der anderen Antworten beziehen sich auf veraltete Funktionen (z. B. typeof). –

6

Wenn Sie nur die grundlegendsten Beschreibung seiner Art benötigen, dann können Sie den typeof Operator verwenden, etwa so:

var foo:String = "test"; 
trace(typeof foo); 
// string 

Während dies bequem ist, hat es einen Nachteil. Dass es immer zu sein, gibt den Basistyp der Variablen, zum Beispiel:

var foo:Array = ["A","B","C","D"]; 
trace(typeof foo); 
//object 

var bar:int = 5; 
trace(typeof bar); 
//number 

var hummer:Car = new Car(); 
trace(typeof hummer); 
//Vehicle 

, die sowohl technisch richtig sind, können aber nicht sein, was Sie suchen.

Wenn Sie den spezifischeren Typen (dh Array, String etc.), dann müssen Sie die etwas kompliziertere getQualifiedClassName() Funktion aus dem flash.utils Paket verwenden:

import flash.utils.getQualifiedClassName; 

var foo:Array = ["A","B","C","D"]; 
trace(getQualifiedClassName(foo)); 
//Array 

var bar:int = 5; 
trace(getQualifiedClassName(bar)); 
//int 

var hummer:Car = new Car(); 
trace(getQualifiedClassName(hummer)); 
//Car 

typeof documentation

getQualifiedClassName() documentation

Verwandte Themen