वर्कस्पेस में किया गया हर बदलाव, एक इवेंट को ट्रिगर करता है. ये इवेंट, हर बदलाव से पहले और बाद की स्थिति के बारे में पूरी जानकारी देते हैं.
इवेंट सुनना
फ़ाइल फ़ोल्डर में addChangeListener
और removeChangeListener
तरीके होते हैं. इनका इस्तेमाल इवेंट की स्ट्रीम सुनने के लिए किया जा सकता है. उदाहरण के लिए, कोड का रीयल-टाइम में जनरेट होना.
एक और उदाहरण, ब्लॉक की ज़्यादा से ज़्यादा सीमा का डेमो है.
आम तौर पर, इन दोनों उदाहरणों में यह ध्यान नहीं रखा जाता कि ट्रिगर करने वाला इवेंट क्या था. ये सिर्फ़ वर्कस्पेस की मौजूदा स्थिति देखते हैं.
ट्रिगर इवेंट पर ध्यान देने वाला एक बेहतर इवेंट लिसनर होगा. इस उदाहरण में, जब उपयोगकर्ता पहली टिप्पणी करता है, तो उसे पता चलता है और वह एक सूचना जारी करता है. इसके बाद, वह सुनना बंद कर देता है, ताकि कोई और सूचना ट्रिगर न हो.
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);
फ़्लाईआउट में होने वाले किसी भी इवेंट को सुनने के लिए, फ़्लाईआउट के वर्कस्पेस में एक लिसनर जोड़ा जा सकता है.
var flyoutWorkspace = yourWorkspace.getFlyout().getWorkspace();
flyoutWorkspace.addChangeListener(onFirstComment);
ब्लॉक में, इवेंट स्ट्रीम को सुनने का एक और तरीका होता है. ब्लॉक, onchange
फ़ंक्शन को तय कर सकता है या setOnChange का इस्तेमाल करके, ऐसा फ़ंक्शन सेट कर सकता है जिसे ब्लॉक के फ़ाइल फ़ोल्डर में कोई बदलाव होने पर कॉल किया जाएगा.
इवेंट किस तरह के हैं
अलग-अलग इवेंट के बारे में जानकारी पाने के लिए, रेफ़रंस दस्तावेज़ देखें.
डेमो
इवेंट की मदद से क्या-क्या किया जा सकता है, इसका उदाहरण देखने के लिए मिरर डेमो देखें. इस डेमो में दो Blockly फ़ाइल फ़ोल्डर हैं, जिन्हें इवेंट का इस्तेमाल करके सिंक किया जाता है.