2011-07-19 7 views
5

tengo una función que me está dando el tipo de clase de un objeto que me pase en.prueba de AS3 para el tipo de clase

public function getClass(obj:Object):Class { 
return Class(getDefinitionByName(getQualifiedClassName(obj))); 
} 

Ahora bien, si hago esto

trace(getClass(panelStack[0])); 

me sale [clase Infopanel] en la ventana de salida que es correcta

Pero si hago esto

trace(getClass(panelStack[0]) is InfoPanel); 

Me sale falso, pero estoy esperando la verdad.

¿Alguien podría indicar lo que estoy haciendo mal aquí? ¡¡Estoy a punto de arrancarme las últimas partes de mi cabello !!!

Gracias,

Marcos

+1

'is' only works for instances – shanethehat

Respuesta

10

Ya casi ha terminado, basta con retirar la llamada getClass(). Prueba este lugar:

trace(panelStack[0] is InfoPanel); 

El operador is se puede utilizar con cualquier variable o expresión para determinar si es un miembro de un tipo de datos particular. Cuando hiciste la llamada al getClass() esencialmente estabas probando contra una instancia completamente diferente.

+0

+1 Publica lo mismo inmediatamente después de ti. –

+0

Tu explicación tiene mucho sentido. ¿Dónde estabas hace 3 horas;) Muchas gracias por tomarte el tiempo de publicar tu solución. – crooksy88

+0

¡Impresionante, no hay problema! ;) – Peter

6

Usted no debe utilizar is pero ==;)

Debido getClass(panelStack[0]) is Class

Cuestiones relacionadas