هر تغییر در فضای کاری باعث ایجاد یک رویداد می شود. این رویدادها به طور کامل وضعیت قبل و بعد از هر تغییر را توصیف می کنند.
گوش دادن به رویدادها
فضاهای کاری دارای متدهای 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 است که با استفاده از رویدادها همگام نگه داشته می شوند.