2009-08-28 9 views

Odpowiedz

25
flash.utils.getQualifiedClassName(...) 

Możesz przekazać dowolną wartość ActionScript do tej funkcji, aby uzyskać ciąg zawierający jej pełną nazwę klasy.

2

Operator is jest do rozwiązania data:

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

Zobacz 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

To jednak nie odpowiada na pytanie, pytanie brzmi: "biorąc pod uwagę zmienną, jak się dowiem, jaki jest jej typ", a nie "biorąc pod uwagę zmienną, jak stwierdzić, czy jest to dany typ". –

+0

Jeśli użytkownik zna możliwe typy var lub chce dowiedzieć się, czy var jest lub nie jest szczególnym rodzajem, to rozwiązanie będzie działać. Niektóre inne odpowiedzi odnoszą się do przestarzałych funkcji (np. Typeof). –

6

Jeśli potrzebujesz tylko najbardziej fundamentalną opis to typ, a następnie można użyć operatora typeof, tak jak poniżej:

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

Jest to wygodne, ale ma tę wadę. Że jest to zawsze daje typ bazowy zmiennej, na przykład:

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 

które są zarówno technicznie w porządku, ale nie może być to, czego szukasz.

Jeśli chcesz bardziej konkretny typ (tj Array, String itd.), To trzeba użyć nieco bardziej skomplikowany getQualifiedClassName() funkcji z pakietu flash.utils:

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

Powiązane problemy