2009-08-28 8 views

Respuesta

25
flash.utils.getQualifiedClassName(...) 

Puede pasar cualquier valor ActionScript para esta función para obtener una cadena que contiene el nombre de clase completo.

2

El operador is es el hasta solución fecha:

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

Ver 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

Eso no responde la pregunta, la pregunta es "se le da una variable, ¿cómo averiguo su tipo?", No "dado una variable, ¿cómo puedo saber si es un tipo dado"? –

+0

Si el usuario conoce los posibles tipos de var, o quiere saber si la var es o no un tipo particular, entonces esta solución funcionará. Algunas de las otras respuestas se refieren a funciones en desuso (por ejemplo, typeof). –

6

Si sólo necesita la descripción más fundamental de su tipo, a continuación, puede utilizar el operador typeof, así:

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

Si bien es conveniente, tiene un inconveniente. Siendo siempre da el tipo de base de la variable, por ejemplo:

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 

que son técnicamente correcto, pero no puede ser lo que estás buscando.

Si desea que el tipo más específico (es decir Array, String etc), entonces es necesario utilizar la función de un poco más complicado getQualifiedClassName() del flash.utils paquete:

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

Cuestiones relacionadas