actionscript-3 actionscript actionscript-2

actionscript 3 - Pruebe si un objeto está definido en ActionScript



actionscript-3 actionscript-2 (4)

En ActionScript, ¿cómo puede probar si un objeto está definido, es decir, no nulo?


probar si un objeto está definido

Esto funciona en AS2 y AS3, y es la forma más confiable de probar si un objeto tiene un valor.

if (obj != null) { doSomethingWith(obj); }

También es la forma más confiable de probar la propiedad de un objeto y leerlo en la misma expresión:

if (arr[0] != null && arr[0]>5) { doSomethingWith(arr[0]); }

probar si un objeto es nulo

Hay una diferencia entre nulo e indefinido, pero si no te importa puedes hacer una comparación normal entre cualquiera de ellos porque se comparan de la misma manera:

if (obj == null) { doSomethingWith(obj); }

es lo mismo que

if (obj == undefined) { doSomethingWith(obj); }

Si le importa la diferencia, use el operador === o! ==, que no los convertirá.

if (obj === undefined) { // obj was never assigned a value } else if (obj === null) { // obj was explicitly set to null } else { doSomethingWith(obj); }


Para ActionScript 3.0 , si todo lo que quiere es una prueba genérica de la nada , entonces es muy fácil:

var a; var b; var c; var d; a = undefined; b = null; c = 5; if (a) trace(a); if (b) trace(b); if (c) // Will trace trace(c); if (d) trace(d);

En el ejemplo anterior, solo c rastreará. Esto es generalmente lo que necesito, y simplemente verifico if (obj) es la versión más legible.

Este método utiliza la conversión implícita a un valor booleano, también conocido como coerción booleana , y los detalles de qué valores forzarán a falso y qué valores forzarán a cumplir con los estándares ECMA y también están documentados específicamente para ActionScript .


Solo pruébalo contra null.

var someObj:Object = getSomeObjectOrMaybeNull(); if(someObj == null) { trace("someObj is null!"); } else { trace("someObj is not null!"); }


También puede recorrer un objeto primario para ver si contiene alguna instancia del objeto que está buscando.

foundit=false; for (var i in this) { if (this[i]._name == "MyMovie") { foundit=true; } }