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;
}
}