'da tanımlandığını test edin ActionScript'te, bir nesnenin tanımlanıp tanımlanmadığını nasıl sınayabilirsiniz, yani null değil?Bir nesnenin ActionScript
cevap
testi bir amacı
Bu AS2 ve AS3 çalışır ve bir amacı, bir değere sahiptir test etmek için en güvenilir yolu tanımlanırsa. Ayrıca
if (obj != null) {
doSomethingWith(obj);
}
Onun bir nesnenin özelliğini test etmek ve aynı ifadede okumak için en güvenilir yolu:
if (arr[0] != null && arr[0]>5) {
doSomethingWith(arr[0]);
}
testi bir nesne
var null ise null ile undefined arasındaki fark, ama eğer umursamıyorsanız, ikisi arasında normal bir karşılaştırma yapabilirsiniz. Onları dönüştürmek olmaz === veya == operatörü, sen fark önem veriyorsanız
if (obj == null) {
doSomethingWith(obj);
}
if (obj == undefined) {
doSomethingWith(obj);
}
aynıdır kullanın:! eşit pare.
if (obj === undefined) {
// obj was never assigned a value
}
else if (obj === null) {
// obj was explicitly set to null
}
else {
doSomethingWith(obj);
}
Tüm bunlar (cis == null || obj == undefined) kod grubumdaki deyimler yoğunlaştırılabilir mi? woo! :) – Herms
Oraya "eğer (obj)" diyebilir misin? Boole baskısı nasıl çalışır? – bzlm
Bu muhtemelen öldü ancak actionscript checing null için bu sayfaya gitmeliyim. Bir mx: html denetimim var ve htmlDOMInitialize üzerinde şu şekilde belge alıyorum: doc: Object = myMxHTML.domWindow.document; Ardından, doc.head == null, trace (doc.head) null değerini gösterse bile false değerini değerlendirir. Dokümantasyonda olduğu gibi doküman null değildir. – HMR
Sadece null değerini sınayın.
var someObj:Object = getSomeObjectOrMaybeNull();
if(someObj == null) {
trace("someObj is null!");
} else {
trace("someObj is not null!");
}
Ayrıca, aradığınız nesnenin örneklerini içerip içermediğini görmek için bir üst nesneye de geçebilirsiniz. İstediğin hiçlik için genel bir testtir eğer ActionScript 3.0 için
foundit=false;
for (var i in this) {
if (this[i]._name == "MyMovie") {
foundit=true;
}
}
Bu, sadece bazı nesnelerin boş olup olmadığını öğrenmek için döngü yapmak için çok kötü bir uygulamadır –
, o zaman çok kolay:
Yukarıdaki örnektevar 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);
, sadece c
yazacaktır. Bu genellikle ihtiyacım olan şeydir ve sadece en okunabilir sürüm olan if (obj)
kontrol edilir.
Bu yöntem örtülü de boole baskı olarak bilinen bir mantıksal değere dönüşüm ve değerler false zorlamak ve hangi değerleri doğru follow ECMA standards için zorlamak ve documented specifically for ActionScript de ne ayrıntılarını kullanır.
Bunu denediğimi düşündüm, ama bu gerçekten işe yarıyor ve bence çok güzel görünüyor. –
Ben de hoşuma gidiyor, kodu daha okunabilir hale getiriyor ve yeniden oluşturmayı kolaylaştırıyor. – bzlm
İyi nokta. Kabul edilen cevaba dahil. Teşekkürler. –
Bu, AS1, AS2 ve AS3'te aynı şekilde çalışır mı? – bzlm