blockly > इवेंट

इवेंट का नेमस्पेस

क्लास

कक्षा ब्यौरा
BlockBase ब्लॉक से जुड़े किसी भी इवेंट के लिए एब्स्ट्रैक्ट क्लास.
BlockChange किसी ब्लॉक के किसी एलिमेंट (जैसे, फ़ील्ड की वैल्यू, टिप्पणियां वगैरह) में बदलाव होने पर, दर्शकों को सूचना भेजती है.
BlockCreate ब्लॉक (या ब्लॉक का कनेक्ट किया गया स्टैक) बनने पर, दर्शकों को सूचना देता है.
BlockDelete किसी ब्लॉक या ब्लॉक के कनेक्ट किए गए स्टैक को मिटाने पर, दर्शकों को सूचना दी जाती है.
BlockDrag जब किसी ब्लॉक को मैन्युअल तरीके से खींचकर/ड्रॉप करके रखा जाता है, तब दर्शकों को इसकी सूचना दी जाती है.
BlockFieldIntermediateChange जब किसी ब्लॉक के फ़ील्ड की वैल्यू बदल जाती है, लेकिन बदलाव पूरा नहीं होता है, तब यह इवेंट सुनने वालों को इसकी सूचना देता है. इसके बाद, ब्लॉक में बदलाव होने का इवेंट होता है.
BlockMove ब्लॉक को किसी दूसरे सेक्शन में ले जाने पर, दर्शकों को सूचना दी जाती है. यह एक कनेक्शन से दूसरे कनेक्शन पर या फ़ाइल फ़ोल्डर की एक जगह से दूसरी जगह पर हो सकता है.
BubbleOpen बबल ओपन इवेंट के लिए क्लास.
सेटिंग इससे दर्शकों को यह सूचना मिलती है कि ब्लॉकली के किसी एलिमेंट पर क्लिक किया गया है.
CommentBase टिप्पणी वाले इवेंट के लिए ऐब्स्ट्रैक्ट क्लास.
CommentChange यह सुनने वालों को सूचना देता है कि Workspace की किसी टिप्पणी का कॉन्टेंट बदल गया है.
CommentCollapse
CommentCreate दर्शकों को सूचना देता है कि वर्कस्पेस में कोई टिप्पणी की गई है.
CommentDelete दर्शकों को सूचना देती है कि वर्कस्पेस में की गई कोई टिप्पणी मिटा दी गई है.
CommentDrag जब किसी टिप्पणी को मैन्युअल तरीके से खींचकर/छोड़कर उसकी जगह बदली जाती है, तब दर्शकों को इसकी सूचना दी जाती है.
CommentMove दर्शकों को यह सूचना देता है कि वर्कस्पेस की किसी टिप्पणी को दूसरी जगह ले जाया गया है.
CommentResize दर्शकों को यह सूचना देता है कि वर्कस्पेस की किसी टिप्पणी का साइज़ बदला गया है.
FinishedLoading जब वर्कस्पेस, JSON/XML से डेसिरियलाइज़ हो जाता है, तब यह ऑडियंस को सूचना देता है.
चुना गया चुने गए इवेंट के लिए क्लास. यह सुनने वालों को सूचना देता है कि कोई नया एलिमेंट चुना गया है.
ThemeChange दर्शकों को सूचना देती है कि वर्कस्पेस की थीम बदल गई है.
ToolboxItemSelect यह सुनने वालों को बताता है कि टूलबॉक्स का कोई आइटम चुना गया है.
TrashcanOpen ट्रैश कैन के खुलने या बंद होने पर, दर्शकों को सूचना दी जाती है.
UiBase यूज़र इंटरफ़ेस (यूआई) इवेंट के लिए बुनियादी क्लास. यूज़र इंटरफ़ेस (यूआई) इवेंट ऐसे इवेंट होते हैं जिन्हें कई उपयोगकर्ताओं के साथ बदलाव करने की सुविधा के काम करने के लिए, वायर पर भेजने की ज़रूरत नहीं होती. जैसे, वर्कस्पेस को स्क्रोल करना, ज़ूम करना, टूलबॉक्स की कैटगरी खोलना. यूज़र इंटरफ़ेस (यूआई) इवेंट, पहले जैसा नहीं किए जा सकते या फिर से नहीं किए जा सकते.
VarBase वैरिएबल इवेंट के लिए ऐब्स्ट्रैक्ट क्लास.
VarCreate यह सुनने वालों को बताता है कि कोई वैरिएबल मॉडल बनाया गया है.
VarDelete यह सूचना देता है कि वैरिएबल मॉडल मिटा दिया गया है.
VarRename यह सुनने वालों को बताता है कि किसी वैरिएबल मॉडल का नाम बदल दिया गया है.
VarTypeChange यह ऑब्जेक्ट, किसी वैरिएबल के टाइप में हुए बदलाव के बारे में, ऑब्जर्वर को सूचना देता है.
ViewportChange

यह सूचना देता है कि वर्कस्पेस के प्लैटफ़ॉर्म की पोज़िशन या स्केल बदल गया है.

वर्कस्पेस का साइज़ अपने-आप बदलने पर सूचना नहीं मिलती.

ऐब्स्ट्रैक्ट क्लास

एब्स्ट्रैक्ट क्लास ब्यौरा
एब्स्ट्रैक्ट किसी इवेंट के लिए ऐब्स्ट्रैक्ट क्लास.

एनुमरेशन

इन्यूमरेशन ब्यौरा
BubbleType
ClickTarget

फ़ंक्शन

फ़ंक्शन ब्यौरा
clearPendingUndo() पहले से मौजूद, पहले किए गए बदलावों को पहले जैसा करने के लिए, उन इवेंट में बदलाव करें जो अभी तक ट्रिगर नहीं हुए हैं. ऐसा करने से, इवेंट ट्रिगर होने पर वे पहले किए गए बदलावों को पहले जैसा करने वाले स्टैक में नहीं जाएंगे. Workspace.clearUndo से कॉल किया जाता है.
disable() इवेंट भेजना बंद करें. इस फ़ंक्शन को हर बार कॉल करने पर, enable फ़ंक्शन को भी कॉल करना ज़रूरी है.
disableOrphans(event) यह सेट करें कि ब्लॉक बंद है या नहीं. यह इस बात पर निर्भर करता है कि ब्लॉक ठीक से कनेक्ट है या नहीं. इसका इस्तेमाल उन ऐप्लिकेशन में करें जहां सभी ब्लॉक को किसी टॉप ब्लॉक से कनेक्ट करना ज़रूरी हो.
enable() इवेंट भेजना शुरू करें. हालांकि, अगर इवेंट बंद करने का अनुरोध करने पर वे पहले से ही बंद थे, तो ऐसा नहीं होगा.
filter(queue)

डुप्लीकेट इवेंट मर्ज करके, शून्य वैल्यू वाले इवेंट हटाकर, और BlockChange इवेंट को फिर से क्रम में लगाकर, सूची में मौजूद इवेंट फ़िल्टर करें.

इस सुविधा का इतिहास:

इस फ़ंक्शन को मूल रूप से cf257ea5 कमिट में जोड़ा गया था. इसका मकसद, डिस्पैच किए गए इवेंट की कुल संख्या को काफ़ी कम करना था. शुरुआत में, इसका असर सिर्फ़ BlockMove इवेंट पर पड़ा था. हालांकि, समय के साथ अन्य इवेंट भी जोड़े गए.

कोड को 5578458 कमिट में जोड़े गए BlockChange इवेंट का क्रम बदलने के लिए जोड़ा गया था. ऐसा करने की वजहें साफ़ तौर पर नहीं बताई जा सकतीं. हालांकि, ऐसा हो सकता है कि ब्लॉक में बदलाव करने के दौरान इवेंट के क्रम से जुड़ी समस्याओं को ठीक करने के लिए, ऐसा किया गया हो. हालांकि, इस कोशिश में कुछ हद तक ही सफलता मिली. इस कोड को फ़ंक्शन के सबसे ऊपर, मर्ज करने और शून्य वैल्यू हटाने से पहले जोड़ा जाना चाहिए था. हालांकि, अब इसकी वजहें याद नहीं हैं. इस गड़बड़ी की पूरी जानकारी और गड़बड़ी को ठीक करने के लिए किए गए अधूरे/गलत तरीके की वजह से हुई कुछ गड़बड़ियों के बारे में जानने के लिए, गड़बड़ी की जांच से जुड़ी ये रिपोर्ट देखें:

https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351

बाद में, PR #1205 में ओ(n^2) को लीनियर-टाइम से बदल दिया गया. हालांकि, इसके बाद कुछ और सुधार किए गए.

अगस्त 2024 में, कई अहम बदलाव किए गए थे:

इस फ़ंक्शन को पहले Workspace.prototype.undo से कॉल किया जाता था. हालांकि, इस फ़ंक्शन की वजह से इवेंट में बदलाव होने की वजह से समस्या #7026 हुई. ध्यान दें कि इवेंट, आगे के क्रम के मुकाबले पीछे के क्रम में अलग तरीके से जोड़े जाएंगे. इस समस्या को ठीक करने के लिए, पहले fireNow में कोड जोड़ा गया था (PR #7069 में), ताकि किसी भी ऐसे वर्कस्पेस के .undoStack_ और .redoStack_ को पोस्ट-फ़िल्टर किया जा सके जो हाल ही में इवेंट डिस्पैच करने में शामिल था. इससे समस्या ठीक हो गई, लेकिन इसमें काफ़ी जटिलताएं भी बढ़ गईं. साथ ही, यह समझना मुश्किल हो गया कि इवेंट को पहले जैसा करने/फिर से करने के लिए कैसे प्रोसेस किया जाता है. इसलिए, पहले जैसा करने के लिए किए गए कॉल और पोस्ट-प्रोसेसिंग कोड, दोनों को हटा दिया गया. साथ ही, forward=true को डिफ़ॉल्ट तौर पर सेट कर दिया गया, जबकि forward=false के साथ फ़ंक्शन को कॉल करने की सुविधा बंद कर दी गई.

साथ ही, BlockChange इवेंट का क्रम बदलने वाले बग वाले कोड को, enqueueEvent नाम के नए फ़ंक्शन में उसी फ़ंक्शन के कम बग वाले वर्शन से बदल दिया गया. enqueueEvent को fireInternal से कॉल किया जाता है. इससे यह पक्का होता है कि फ़िल्टर के कॉल होने पर इवेंट सही क्रम में होंगे.

इसके अलावा, इवेंट मर्ज करने वाले कोड में बदलाव किया गया है, ताकि सिर्फ़ आस-पास के इवेंट मर्ज किए जाएं. इससे, इवेंट को मर्ज करने की सुविधा को लागू करना आसान हो गया. साथ ही, यह भी पक्का किया जा सका कि इवेंट को मर्ज करने से, उनका क्रम न बदले.

fire(event)

लिसनर बदलने के लिए, डिस्पैच किए जाने वाले इवेंट को सूची में जोड़ें.

ध्यान दें:

- इवेंट को टाइम आउट होने तक लाइन में लगाया जाता है. आम तौर पर, रेंडरिंग पूरी होने के बाद या मौजूदा माइक्रोटास्क के खत्म होने पर ऐसा किया जाता है. हालांकि, अगर इवेंट ब्राउज़र में नहीं चल रहे हैं, तो ऐसा नहीं किया जाता. - सूची में जोड़े गए इवेंट में, बाद में जोड़े गए इवेंट के साथ जोड़कर, नुकसान पहुंचाने वाले बदलाव किए जा सकते हैं. हालांकि, ऐसा सिर्फ़ तब तक किया जा सकता है, जब तक इवेंट ट्रिगर नहीं हो जाते. - जिन वर्कस्पेस पर असर पड़ा है उन पर, fireChangeListener तरीके से इवेंट भेजे जाते हैं.

fromJson(json, workspace) JSON को किसी इवेंट में डिकोड करें.
get(eventType) रजिस्ट्री से किसी खास इवेंट टाइप के लिए क्लास पाता है.
getGroup() मौजूदा ग्रुप.
getRecordUndo() यह बताता है कि इवेंट, पहले जैसा करने वाले स्टैक में जोड़े जाएंगे या नहीं.
isEnabled() यह बताता है कि इवेंट ट्रिगर किए जा सकते हैं या नहीं.
setGroup(state) ग्रुप शुरू या बंद करना.
setRecordUndo(newValue) इससे यह तय होता है कि इवेंट को पहले जैसा करने की सुविधा वाले स्टैक में जोड़ा जाए या नहीं.

इंटरफ़ेस

इंटरफ़ेस ब्यौरा
AbstractEventJson
BlockBaseJson
BlockChangeJson
BlockCreateJson
BlockDeleteJson
BlockDragJson
BlockFieldIntermediateChangeJson
BlockMoveJson
BubbleOpenJson
ClickJson
CommentBaseJson
CommentChangeJson
CommentCollapseJson
CommentCreateJson
CommentDragJson
CommentMoveJson
CommentResizeJson
SelectedJson
ThemeChangeJson
ToolboxItemSelectJson
TrashcanOpenJson
VarBaseJson
VarCreateJson
VarDeleteJson
VarRenameJson
VarTypeChangeJson
ViewportChangeJson

वैरिएबल

वैरिएबल ब्यौरा
BLOCK_CHANGE
BLOCK_CREATE
BLOCK_DELETE
BLOCK_DRAG
BLOCK_FIELD_INTERMEDIATE_CHANGE
BLOCK_MOVE
BUBBLE_OPEN
BUMP_EVENTS

उन इवेंट की सूची जिनकी वजह से ऑब्जेक्ट, फ़ाइल फ़ोल्डर के दिखने वाले हिस्से में वापस आ जाते हैं.

इसे बंपिंग से अलग रखें, ताकि डिसकनेक्ट किए गए कनेक्शन कनेक्टेड न दिखें.

बदलें
क्लिक करें
COMMENT_CHANGE
COMMENT_CREATE
COMMENT_DELETE
COMMENT_DRAG
COMMENT_MOVE
COMMENT_RESIZE
बनाएं
मिटाएं
FINISHED_LOADING
MOVE
चुने गए
THEME_CHANGE
TOOLBOX_ITEM_SELECT
TRASHCAN_OPEN
यूज़र इंटरफ़ेस (यूआई)
VAR_CREATE
VAR_DELETE
VAR_RENAME
VIEWPORT_CHANGE

कई एलियस

टाइप का उपनाम ब्यौरा
BumpEvent

इवेंट का टाइप, जिसकी वजह से ऑब्जेक्ट, वर्कस्पेस के दिखने वाले हिस्से में वापस आ जाते हैं.

इसे बंपिंग से अलग रखें, ताकि डिसकनेक्ट किए गए कनेक्शन कनेक्टेड न दिखें.