Pytanie Jak mogę znaleźć typ var / name w Actionscript3?


Erm, to wszystko! ...


12
2017-08-28 03:26


pochodzenie




Odpowiedzi:


Funkcja nazywa się typeof (). http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/operators.html#typeof


8
2017-08-28 03:33



Oddaje ci "obiekt" dla wszystkich z wyjątkiem 5 predefiniowanych typów. - spender


flash.utils.getQualifiedClassName(...)

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


25
2017-10-10 16:52





Jeśli potrzebujesz tylko najbardziej podstawowego opisu tego typu, możesz użyć typeof operator, jak na przykład:

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

Chociaż jest to wygodne, ma tę wadę. To dlatego, że zawsze podaje 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ą technicznie poprawne, ale mogą nie być tym, czego szukasz.

Jeśli chcesz bardziej konkretny typ (np Array, String itp.), musisz użyć nieco bardziej skomplikowanego getQualifiedClassName() funkcja z flash.utils pakiet:

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

dokumentacja typu

getQualifiedClassName () dokumentacja


6
2018-04-21 17:47





Jeśli pamięć służy mi dobrze, to metoda flash.utils.describeType wręcza ci dokument xml z wszystkimi odzwierciedlonymi typeinfo obiektu / typu.

W rzeczy samej: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#describeType%28%29


5
2017-08-28 03:29



Whoah, to tak naprawdę zbyt wiele informacji o typach. Miałem nadzieję, że obejmuje to również rzeczywiste wartości nieruchomości. No cóż, dobrze o tym wiedzieć. - Pat


The is operator to aktualne rozwiązanie:

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

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


2
2018-01-20 22:14



Nie odpowiada to jednak na pytanie, pytanie brzmi: "biorąc pod uwagę zmienną, jak się dowiem, jaki jest jej typ", a nie "biorąc pod uwagę zmienną, jak mogę stwierdzić, czy jest to dany typ". - Adam Parkin
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 zadziała. Niektóre inne odpowiedzi odnoszą się do przestarzałych funkcji (np. Typeof). - Ross Attrill