В ActionScript, как вы можете проверить, задан ли объект, то есть не null?
Проверка, если объект определен в ActionScript
Ответ 1
проверить, если объект определен
Это работает в AS2 и AS3 и является самым надежным способом проверить, имеет ли объект значение.
if (obj != null) {
doSomethingWith(obj);
}
Его также самый надежный способ проверить свойство объекта и прочитать его в том же выражении:
if (arr[0] != null && arr[0]>5) {
doSomethingWith(arr[0]);
}
проверить, является ли объект нулевым
Там разница между нулем и undefined, но если вам все равно, вы можете просто провести обычное сравнение между ними, потому что они сравнивают одинаковые:
if (obj == null) {
doSomethingWith(obj);
}
совпадает с
if (obj == undefined) {
doSomethingWith(obj);
}
Если вам нужна разница, используйте оператор === или! ==, который не будет их преобразовывать.
if (obj === undefined) {
// obj was never assigned a value
}
else if (obj === null) {
// obj was explicitly set to null
}
else {
doSomethingWith(obj);
}
Ответ 2
Для ActionScript 3.0, если все, что вы хотите, является общим тестом на небытие, то это очень просто:
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);
В приведенном выше примере будет прослеживаться только c
. Обычно это то, что мне нужно, и просто проверка if (obj)
является наиболее читаемой версией.
Этот метод использует неявное преобразование в логическое значение, также известное как логическое принуждение, и сведения о том, какие значения будут принуждать к ложному и какие значения будут принуждать к истинному следуют стандартам ECMA, а также документально оформлен для ActionScript.
Ответ 3
Просто проверьте его на null.
var someObj:Object = getSomeObjectOrMaybeNull();
if(someObj == null) {
trace("someObj is null!");
} else {
trace("someObj is not null!");
}
Ответ 4
Вы также можете пропустить родительский объект, чтобы увидеть, содержит ли он какие-либо экземпляры объекта, который вы ищете.
foundit=false;
for (var i in this) {
if (this[i]._name == "MyMovie") {
foundit=true;
}
}