Ответ 1
Функция называется typeof(). http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/operators.html#typeof
Эмм, что это!...
Функция называется typeof(). http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/operators.html#typeof
flash.utils.getQualifiedClassName(...)
Вы можете передать любое значение ActionScript этой функции, чтобы получить строку, содержащую ее полное имя класса.
Если вам нужно только самое фундаментальное описание этого типа, вы можете использовать оператор typeof
, например:
var foo:String = "test";
trace( typeof foo );
// string
Хотя это удобно, у него есть недостаток. Это то, что он всегда дает базовый тип переменной, например:
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
Как это технически правильно, но может и не быть тем, что вы ищете.
Если вам нужен более конкретный тип (т.е. Array
, String
и т.д.), вам нужно использовать немного более сложную функцию getQualifiedClassName()
из пакета 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
Если память мне подходит, метод flash.utils.describeType передает вам документ xml со всеми отраженными типами объектов объекта/типа.
Действительно: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#describeType%28%29
Оператор is
- это современное решение:
var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true