Çalışma alanındaki her değişiklik bir etkinliği tetikler. Bu etkinlikler, her değişikliğin önceki ve sonraki durumunu tam olarak açıklar.
Etkinlikleri Dinleme
Çalışma alanlarında, etkinlik akışını dinlemek için kullanılabilecek addChangeListener
ve removeChangeListener
yöntemleri bulunur. Örneğin, gerçek zamanlı kod oluşturma.
Maksimum blok sınırı demosu da buna örnek gösterilebilir.
Genellikle olduğu gibi, bu iki örnekten ikisi de tetikleyici etkinliğin ne olduğuyla ilgilenmiyor. Yalnızca çalışma alanının mevcut durumuna bakarlar.
Daha gelişmiş bir etkinlik işleyici, tetikleyici etkinliğe bakar. Aşağıdaki örnekte, kullanıcının ilk yorumunu oluşturduğu tespit edilir, bir uyarı verilir ve daha fazla uyarı tetiklenmemesi için dinleme durdurulur.
function onFirstComment(event) {
if (event.type == Blockly.Events.BLOCK_CHANGE &&
event.element == 'comment' &&
!event.oldValue && event.newValue) {
alert('Congratulations on creating your first comment!')
workspace.removeChangeListener(onFirstComment);
}
}
workspace.addChangeListener(onFirstComment);
Açılır menünün içinde gerçekleşen tüm etkinlikleri dinlemek için dinleyici, açılır menünün çalışma alanına eklenebilir.
var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);
Engellemeler, etkinlik akışını dinlemek için başka bir yönteme sahiptir. Bir blok, onchange
işlevi tanımlayabilir veya bloğun çalışma alanında her değişiklik yapıldığında çağrılacak bir işlev ayarlamak için setOnChange işlevini kullanabilir.
Etkinlik türleri
Her bir etkinlikle ilgili bilgi için referans dokümanlarını inceleyin.
Demo
Etkinliklerle yapabileceğiniz harika şeylere örnek olarak yansıtma demosuna göz atabilirsiniz. Bu demoda, etkinlikler kullanılarak senkronize edilen iki Blockly çalışma alanı vardır.