blockly > WorkspaceSvg

WorkspaceSvg क्लास

वर्कस्पेस के लिए क्लास. यह स्क्रीन पर दिखने वाली जगह है, जिसमें ट्रैशकैन, स्क्रोलबार, बबल्स, और खींचकर छोड़ने की सुविधा वैकल्पिक है.

हस्ताक्षर:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

बढ़ावा दिया गया है: Workspace

लागू करने का तरीका: IASTNodeLocationSvg

कंस्ट्रक्टर

निर्माता मॉडिफ़ायर ब्यौरा
(कंस्ट्रक्टर)(विकल्प) WorkspaceSvg क्लास का एक नया इंस्टेंस बनाता है

प्रॉपर्टी

प्रॉपर्टी मॉडिफ़ायर टाइप ब्यौरा
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null डेवलपर इस फ़ंक्शन को तय कर सकते हैं. ऐसा करके, फ़ाइल फ़ोल्डर के संदर्भ मेन्यू में कस्टम मेन्यू के विकल्प जोड़े जा सकते हैं. इसके अलावा, फ़ाइल फ़ोल्डर से बनाए गए मेन्यू के विकल्पों में बदलाव भी किया जा सकता है.
keyboardAccessibilityMode boolean अगर कीबोर्ड सुलभता मोड चालू है, तो वैल्यू 'सही' होगी. ऐसा न होने पर 'गलत' होगा.
रेंडर किया गया boolean SVG फ़ाइल फ़ोल्डर के रेंडर का स्टेटस. बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले फ़ाइल फ़ोल्डर के लिए false दिखाता है और WorkspaceSvg के इंस्टेंस के लिए 'सही' दिखाता है.
स्केल नंबर मौजूदा स्केल.
स्क्रोलबार ScrollbarPair | शून्य इस फ़ाइल फ़ोल्डर के स्क्रोलबार, अगर वे मौजूद हैं.
scrollX नंबर

फ़ाइल फ़ोल्डर ऑरिजिन के संबंध में, पिक्सल यूनिट में मौजूदा हॉरिज़ॉन्टल स्क्रोलिंग ऑफ़सेट.

उस व्यू के बारे में सोचना चाहिए. उस व्यू के नीचे मौजूद कैनवस पर भी फ़ोकस किया जा सकता है. जैसे-जैसे कैनवस दाईं ओर बढ़ता है, यह वैल्यू ज़्यादा पॉज़िटिव होती जाती है. साथ ही, कैनवस के बाईं ओर व्यू "दिख रहा है". जैसे-जैसे कैनवस बाईं ओर बढ़ता है, यह वैल्यू ज़्यादा नेगेटिव होती जाती है. साथ ही, अब कैनवस के दाईं ओर व्यू "दिख रहा है".

इस वैल्यू के बारे में भ्रम की स्थिति यह है कि इसमें ऐब्सलूट बाईं ओर का ऑफ़सेट मौजूद नहीं है और न ही इसमें शामिल होना चाहिए. ऐसा इसलिए होता है, क्योंकि इसका इस्तेमाल viewleft वैल्यू को कैलकुलेट करने के लिए किया जाता है.

Viewleft, फ़ाइल फ़ोल्डर की शुरुआत की जगह के हिसाब से है. हालांकि, यह पिक्सल यूनिट में है. फ़ाइल फ़ोल्डर का ऑरिजिन, वर्कस्पेस का सबसे ऊपर बाईं ओर मौजूद होता है (कम से कम तब, जब यह चालू हो). इसे blocklyDiv के ऊपरी बाईं ओर से शिफ़्ट किया गया है, ताकि यह टूलबॉक्स के नीचे न रहे.

फ़ाइल फ़ोल्डर के चालू होने पर, viewleft और फ़ाइल फ़ोल्डर का ऑरिजिन एक ही X लोकेशन पर होता है. जब कैनवस, व्यू के नीचे दाईं ओर स्लाइड होता है, तो यह वैल्यू (scrollX) ज़्यादा पॉज़िटिव हो जाती है. साथ ही, viewलेफ़्ट, फ़ाइल फ़ोल्डर की शुरुआत की जगह के मुकाबले ज़्यादा नेगेटिव हो जाता है. जैसे-जैसे कैनवस मूव होता है, वह दाईं ओर स्लाइड होने वाले कैनवस पर एक डॉट के रूप में फ़ाइल फ़ोल्डर ऑरिजिन को दिखाता है.

इसलिए, अगर ScrollX में सुझाया गया ऑब्जेक्ट भी शामिल है, तो इससे फ़ाइल फ़ोल्डर के ऑरिजिन को "अनशिफ़्ट" किया जा सकता है. इसका मतलब है कि viewleft, Workspace के बाएं किनारे के बजाय, blocklyDiv के बाएं किनारे को दिखाएगा.

scrollY नंबर

फ़ाइल फ़ोल्डर की शुरुआत के हिसाब से, पिक्सल यूनिट में मौजूदा वर्टिकल स्क्रोलिंग ऑफ़सेट.

उस व्यू के बारे में सोचना चाहिए. उस व्यू के नीचे मौजूद कैनवस पर भी फ़ोकस किया जा सकता है. जैसे-जैसे कैनवस नीचे की ओर बढ़ता है, यह वैल्यू ज़्यादा पॉज़िटिव होती जाती है. साथ ही, अब कैनवस के ऊपरी हिस्से का व्यू "दिख रहा है". जैसे-जैसे कैनवस ऊपर की ओर जाता है, यह वैल्यू ज़्यादा नेगेटिव होती जाती है. साथ ही, व्यू, कैनवस के निचले हिस्से को "दिख रहा" है.

इस वैल्यू के बारे में भ्रम की स्थिति यह है कि इसमें ऐब्सलूट टॉप ऑफ़सेट शामिल नहीं है और न ही इसमें शामिल होना चाहिए. ऐसा इसलिए, क्योंकि इसका इस्तेमाल viewTop वैल्यू को कैलकुलेट करने के लिए किया जाता है.

ViewTop, फ़ाइल फ़ोल्डर की शुरुआत की जगह के मुताबिक है (हालांकि पिक्सल यूनिट में). फ़ाइल फ़ोल्डर का ऑरिजिन, वर्कस्पेस का सबसे ऊपर बाईं ओर मौजूद होता है (कम से कम तब, जब यह चालू हो). इसे blocklyDiv के ऊपरी बाईं ओर से शिफ़्ट किया गया है, ताकि यह टूलबॉक्स के नीचे न रहे.

फ़ाइल फ़ोल्डर के चालू होने पर, viewटॉप और वर्कस्पेस ऑरिजिन एक ही Y लोकेशन पर होंगे. जब कैनवस नीचे की ओर स्लाइड होता है, तब यह वैल्यू ज़्यादा पॉज़िटिव हो जाती है. साथ ही, viewटॉप, फ़ाइल फ़ोल्डर की शुरुआत की जगह के मुकाबले नेगेटिव हो जाता है. जैसे-जैसे कैनवस मूव होता है, कैनवस पर नीचे की ओर खिसकने वाली इमेज, कैनवस पर एक डॉट के तौर पर दिखती है.

इसलिए, अगर स्क्रोलY में ऐब्सलूट, को शामिल किया जाता है, तो इससे फ़ाइल फ़ोल्डर के ऑरिजिन को "अनशिफ़्ट" किया जा सकता है. इसका मतलब है कि viewTop ब्लॉकlyDiv के ऊपरी किनारे को दिखाएगा, न कि वर्कस्पेस के ऊपरी किनारे को.

startScrollX नंबर पिक्सल यूनिट में स्क्रोल करना शुरू होने पर हॉरिज़ॉन्टल स्क्रोल वैल्यू.
startScrollY नंबर पिक्सल यूनिट में स्क्रोल शुरू होने पर, वर्टिकल स्क्रोल की वैल्यू.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
ट्रैशकैन ट्रैशकैन | शून्य फ़ाइल फ़ोल्डर का ट्रैशकैन (अगर कोई है).
zoomControls_ ZoomControls | शून्य

तरीके

तरीका मॉडिफ़ायर ब्यौरा
addTopBlock(block) टॉप ब्लॉक की सूची में एक ब्लॉक जोड़ता है.
addTopBoundedElement(element) टॉप बाउंड एलिमेंट की सूची में किसी बाउंड एलिमेंट को जोड़ता है.
addTopComment(comment) सबसे लोकप्रिय टिप्पणियों की सूची में टिप्पणी जोड़ता है.
centerOnBlock(id, blockOnly) वर्कस्पेस को स्क्रोल करके, दिए गए ब्लॉक पर बीच में ले जाएं. अगर ब्लॉक के नीचे अन्य ब्लॉक स्टैक किए गए हैं, तो फ़ाइल फ़ोल्डर को स्टैक के बीच में रखा जाएगा, जब तक blockOnly सही पर न हो.
क्लीनअप() एक कॉलम में सभी ब्लॉक को क्रम से लगाकर फ़ाइल फ़ोल्डर में जगह खाली करें.
क्लियर() साइज़ बदलने से रोकने के लिए ऑप्टिमाइज़ेशन की मदद से, फ़ाइल फ़ोल्डर में सभी ब्लॉक को नष्ट करें.
createDom(opt_backgroundClass, jectDiv) वर्कस्पेस का डीओएम एलिमेंट बनाएं.
createVariable(name, opt_type, opt_id) दिए गए नाम से एक नया वैरिएबल बनाएं. नए वैरिएबल को तुरंत दिखाने के लिए, फ़्लाइआउट को अपडेट करें.
deleteVariableById(id) पास किए गए आईडी के हिसाब से वैरिएबल मिटाएं. वैरिएबल को तुरंत मिटाने के बारे में बताने के लिए, फ़्लायआउट को अपडेट करें.
डिसपोज़() इस फ़ाइल फ़ोल्डर को नष्ट करें. मेमोरी लीक को रोकने के लिए, सभी डीओएम एलिमेंट से अनलिंक करें.
getAllBlocks(ordered) फ़ाइल फ़ोल्डर में सभी ब्लॉक ढूंढें. ब्लॉक को पोज़िशन के हिसाब से क्रम में लगाने का विकल्प भी होता है. इन्हें ऊपर से नीचे की ओर (थोड़ी-बहुत एलटीआर या आरटीएल बायस) के हिसाब से क्रम में लगाया जाता है.
getAudioManager() इस फ़ाइल फ़ोल्डर के लिए ऑडियो मैनेजर डाउनलोड करें.
getBlockById(id) डाले गए आईडी के साथ इस फ़ाइल फ़ोल्डर पर ब्लॉक ढूंढें.
getBlocksBoundingBox() वर्कस्पेस में ब्लॉक के लिए बाउंडिंग बॉक्स कैलकुलेट करें. निर्देशांक सिस्टम: फ़ाइल फ़ोल्डर के निर्देशांक.
getBubbleCanvas() ऐसा SVG एलिमेंट पाएं जो बबल सरफ़ेस को बनाता है.
getButtonCallback(key) फ़्लाइआउट में बटन और लेबल पर क्लिक करने के लिए, किसी कुंजी से जुड़ा कॉलबैक फ़ंक्शन पाएं.
getCanvas() ऐसा SVG एलिमेंट पाएं जिससे ड्रॉइंग वाला सरफ़ेस बनता है.
getComponentManager() इस फ़ाइल फ़ोल्डर के लिए कॉम्पोनेंट मैनेजर को ऐक्सेस करता है.
getCursor() इस फ़ाइल फ़ोल्डर का कर्सर.
getDragTarget(e) वह ड्रैग टारगेट दिखाता है जो पॉइंटर इवेंट खत्म हो गया है.
getFlyout(opt_own) इस वर्कस्पेस से जुड़े फ़्लाइआउट के लिए गेटर. टूलबॉक्स कॉन्फ़िगरेशन के आधार पर, इस फ़्लायआउट का मालिकाना हक टूलबॉक्स या वर्कस्पेस के पास हो सकता है. अगर कोई फ़्लायआउट नहीं है, तो यह शून्य हो जाएगा.
getGrid() इस फ़ाइल फ़ोल्डर के लिए ग्रिड ऑब्जेक्ट पाएं या कोई फ़ाइल फ़ोल्डर न होने पर शून्य पाएं.
getInverseScreenCTM() इन्वर्टेड स्क्रीन सीटीएम के लिए गेटर.
getMarkerManager() इस फ़ाइल फ़ोल्डर के लिए मार्कर मैनेजर पाएं.
getMetricsManager() इस फ़ाइल फ़ोल्डर के लिए, मेट्रिक मैनेजर को ऐक्सेस करता है.
getParentSvg() वह SVG एलिमेंट पाएं जिसमें यह फ़ाइल फ़ोल्डर शामिल है. अहम जानकारी: हम मानते हैं कि फ़ाइल फ़ोल्डर को डीओएम में इंजेक्ट करने के बाद ही इसे कॉल किया जाएगा.
getRenderer() इस फ़ाइल फ़ोल्डर से ब्लॉक रेंडरर अटैच करें.
getRootWorkspace()
getScale() फ़ाइल फ़ोल्डर का ज़ूम फ़ैक्टर पाएं. अगर वर्कस्पेस का कोई पैरंट फ़ोल्डर है, तो हम उसके स्केल का पता लगाने के लिए पैरंट को कॉल करते हैं.
getSvgGroup() फ़ाइल फ़ोल्डर के लिए SVG ग्रुप दिखाता है.
getTheme() Workspace की थीम वाला ऑब्जेक्ट पाएं.
getToolbox() इस फ़ाइल फ़ोल्डर से जुड़े टूलबॉक्स का गेटर, अगर कोई मौजूद है.
getToolboxCategoryCallback(key) इस फ़ाइल फ़ोल्डर में कस्टम टूलबॉक्स कैटगरी की जानकारी अपने-आप भरने के लिए, किसी कुंजी से जुड़ा कॉलबैक फ़ंक्शन पाएं.
getTopBlocks(ordered) टॉप-लेवल के ब्लॉक ढूंढता है और उन्हें दिखाता है. ब्लॉक को पोज़िशन के हिसाब से क्रम में लगाने का विकल्प भी होता है. इन्हें ऊपर से नीचे की ओर (थोड़ी-बहुत एलटीआर या आरटीएल बायस) के हिसाब से क्रम में लगाया जाता है.
getTopBoundedElements() टॉप लेवल के बाउंड किए गए एलिमेंट ढूंढता है और उन्हें दिखाता है.
getWidth() वर्कस्पेस का हॉरिज़ॉन्टल ऑफ़सेट दिखाता है. एक्सएमएल में एलटीआर/आरटीएल के साथ काम करने के लिए.
hideChaff(onlyClosePopups) टूलटिप, संदर्भ मेन्यू, ड्रॉपडाउन चुनना वगैरह बंद करें.
hideComponents(onlyClosePopups) अपने-आप छिपने वाले कॉम्पोनेंट को छिपाएं, जैसे कि फ़्लाइआउट, ट्रैशकैन, और उपयोगकर्ता का रजिस्टर किया गया कोई भी कॉम्पोनेंट.
highlightBlock(id, opt_state) फ़ाइल फ़ोल्डर में किसी ब्लॉक को हाइलाइट या अनहाइलाइट करें. ब्लॉक हाइलाइट करने की सुविधा का इस्तेमाल, अक्सर लागू किए जा रहे ब्लॉक को विज़ुअल तौर पर मार्क करने के लिए किया जाता है.
isDraggable() क्या इस फ़ाइल फ़ोल्डर को खींचकर छोड़ा जा सकता है?
isDragging() क्या उपयोगकर्ता अभी किसी ब्लॉक को खींच रहा है या फ़्लाइआउट/वर्कस्पेस को स्क्रोल कर रहा है?
isMovable()

क्या इस फ़ाइल फ़ोल्डर को एक से दूसरी जगह ले जाया जा सकता है?

इसका मतलब है कि उपयोगकर्ता इनपुट की मदद से वर्कस्पेस के X Y निर्देशांक की जगह बदल सकता है. इसमें स्क्रोलबार, स्क्रोल व्हील, ड्रैगिंग या स्क्रोल व्हील या पिंच की मदद से ज़ूम किया जा सकता है. ऐसा इसलिए, क्योंकि ज़ूम को माउस की पोज़िशन के बीच में रखा जाता है. इसमें ज़ूम कंट्रोल से ज़ूम करना शामिल नहीं है, क्योंकि X Y निर्देशांक, प्रोग्राम के हिसाब से तय होते हैं.

isMovableHorizontally() क्या इस फ़ाइल फ़ोल्डर को हॉरिज़ॉन्टल तौर पर एक जगह से दूसरी जगह ले जाया जा सकता है?
isMovableVertically() क्या इस फ़ाइल फ़ोल्डर को वर्टिकल तौर पर एक जगह से दूसरी जगह ले जाया जा सकता है?
isVisible() is visibility के लिए गेटर का
markFocused() इस फ़ाइल फ़ोल्डर को, फ़ोकस किए गए मौजूदा मुख्य फ़ाइल फ़ोल्डर के तौर पर मार्क करें.
moveDrag(e) इस फ़ाइल फ़ोल्डर पर किसी ऑब्जेक्ट को खींचकर छोड़ें.
newBlock(prototypeName, opt_id) नया ब्लॉक पाना.
चिपकाएं(राज्य) दी गई ब्लॉक या फ़ाइल फ़ोल्डर की टिप्पणी को फ़ाइल फ़ोल्डर में चिपकाता है. यह नहीं देखता कि ऑब्जेक्ट की क्षमता बची है या नहीं. इस तरीके को कॉल करने से पहले, ऐसा किया जाना चाहिए.
recordDragTargets() इस फ़ाइल फ़ोल्डर में मौजूद, मिटाई गई सभी जगहों की सूची बनाएं.
refreshTheme() थीम अपडेट करने के बाद, फ़ाइल फ़ोल्डर के सभी ब्लॉक रीफ़्रेश करें.
registerButtonCallback(key, func) फ़्लाइआउट में बटन और लेबल पर क्लिक करने के लिए, किसी कुंजी से जुड़ा कॉलबैक फ़ंक्शन रजिस्टर करें. उदाहरण के लिए, एक्सएमएल से तय किए गए बटन का मिलान रजिस्टरButtonCallback("CREATE_VARIABLE", yourCallbackFunction) को किए जाने वाले कॉल से होना चाहिए.
registerToolboxCategoryCallback(key, func) इस फ़ाइल फ़ोल्डर में कस्टम टूलबॉक्स कैटगरी की जानकारी अपने-आप भरने के लिए, किसी कुंजी से जुड़े कॉलबैक फ़ंक्शन को रजिस्टर करें. उदाहरण के तौर पर, वैरिएबल और प्रोसेस की कैटगरी देखें.
removeButtonCallback(key) फ़्लाइआउट में किसी बटन पर क्लिक करने के लिए कॉलबैक हटाएं.
removeToolboxCategoryCallback(key) टूलबॉक्स में कस्टम कैटगरी के नाम पर क्लिक करने के लिए, कॉलबैक हटाएं.
removeTopBlock(block) टॉप ब्लॉक की सूची से ब्लॉक हटाता है.
removeTopBoundedElement(element) टॉप बाउंड एलिमेंट की सूची से किसी बाउंड एलिमेंट को हटाता है.
removeTopComment(comment) सबसे लोकप्रिय टिप्पणियों की सूची से किसी टिप्पणी को हटाता है.
renameVariableById(id, newName) वैरिएबल मैप में वैरिएबल का नाम अपडेट करके, उसका नाम बदलें. बदले गए नाम वाले वैरिएबल को तुरंत दिखाने के लिए, फ़्लायआउट को अपडेट करें.
रेंडर() फ़ाइल फ़ोल्डर में सभी ब्लॉक रेंडर करें.
resize() सभी Workspace Chrome (टूलबॉक्स, ट्रैश, स्क्रोलबार वगैरह) का साइज़ बदलें और उनकी जगह बदलें इसे तब कहा जाना चाहिए, जब कोई ऐसा बदलाव होता है जिसके लिए ट्रैश, ज़ूम, टूलबॉक्स वगैरह के डाइमेंशन और पोज़िशन की फिर से गिनती करने की ज़रूरत होती है. जैसे, विंडो का साइज़ बदलना.
scrollCenter() फ़ाइल फ़ोल्डर को बीच में करें.
setResizeHandlerWrapper(handler) साइज़ बदलने वाले हैंडलर का डेटा सेव करें, ताकि हम बाद में उसे डिस्पोज़ करके मिटा सकें.
setResizesEnabled(enabled) अपडेट करें कि इस फ़ाइल फ़ोल्डर का साइज़ बदलने की सुविधा चालू है या नहीं. अगर इसे चालू किया जाता है, तो ज़रूरत पड़ने पर फ़ाइल फ़ोल्डर का साइज़ बदल जाएगा. अगर इसे बंद किया गया है, तो फ़ाइल फ़ोल्डर का साइज़ तब तक नहीं बदलेगा, जब तक इसे फिर से चालू नहीं किया जाता. परफ़ॉर्मेंस के लिए, बैच ऑपरेशन के दौरान साइज़ बदलने से बचने के लिए, इसका इस्तेमाल करें.
setScale(newScale) फ़ाइल फ़ोल्डर का ज़ूम फ़ैक्टर सेट करें.
setTheme(theme) वर्कस्पेस की थीम वाला ऑब्जेक्ट सेट करें. अगर कोई थीम पास नहीं की जाती है, तो डिफ़ॉल्ट रूप से Classic थीम इस्तेमाल करें.
setVisible(isVisible) फ़ाइल फ़ोल्डर के दिखने की सेटिंग को टॉगल करता है. फ़िलहाल, यह सिर्फ़ मुख्य फ़ाइल फ़ोल्डर के लिए है.
startDrag(e, xy) इस फ़ाइल फ़ोल्डर पर किसी ऑब्जेक्ट को ड्रैग करके ट्रैक करना शुरू करें.
अनुवाद(x, y) इस फ़ाइल फ़ोल्डर का नए निर्देशांक में अनुवाद करें.
updateInverseScreenCTM() इनवर्स स्क्रीन सीटीएम को गंदा के तौर पर मार्क करें.
updateToolbox(toolboxDef) मौजूदा टूलबॉक्स पर ब्लॉक ट्री में बदलाव करें.
ज़ूम(x, y, रकम) दिए गए (x, y) निर्देशांक के सापेक्ष/केंद्र में फ़ाइल फ़ोल्डर को ज़ूम इन या आउट करता है.
zoomCenter(type) व्यू के बीच में मौजूद ब्लॉक को ज़ूम इन या ज़ूम आउट करके ज़ूम करना.
ZoomToFit() अगर हो सके, तो ब्लॉक को फ़ाइल फ़ोल्डर में फ़िट करने के लिए ज़ूम करें.