blockly > WorkspaceSvg

فئة WorkspaceSvg

فئة لمساحة عمل هذه منطقة على الشاشة تتضمّن "مكبّر قمامة" وشرائح تمرير اختيارية وفقاعات وسحب.

Signature:

export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFocusableNode, IFocusableTree 

التوسيع: Workspace

تنفِّذ: IContextMenu وIFocusableNode وIFocusableTree

الشركات المصنِّعة

الشركة المصنِّعة مفاتيح التعديل الوصف
(constructor)(options) إنشاء مثيل جديد من فئة WorkspaceSvg

الخصائص

الموقع مفاتيح التعديل النوع الوصف
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null يمكن للمطوّرين تحديد هذه الوظيفة لإضافة خيارات قائمة مخصّصة إلى قائمة سياق مساحة العمل أو تعديل مجموعة خيارات القائمة التي أنشأتها مساحة العمل.
keyboardAccessibilityMode قيمة منطقية صحيح إذا كان وضع تسهيل استخدام لوحة المفاتيح مفعّلاً، وخطأ في الحالات الأخرى
keyboardMoveInProgress قيمة منطقية صحيح إذا كان هناك عملية نقل ("سحب") جارٍ تنفيذها من خلال لوحة المفاتيح.
معروض قيمة منطقية حالة عرض مساحة عمل SVG تعرِض هذه الدالة القيمة false لمساحات العمل التي لا تتضمّن واجهة مستخدم والقيمة true لنُسخ WorkspaceSvg.
المقياس الرقم الحجم الحالي
scrollbar ScrollbarPair | null أشرطة التمرير في مساحة العمل هذه، إن توفّرت
scrollX الرقم

الإزاحة الحالية للانتقال الأفقي في وحدات البكسل، بالنسبة إلى منشأ مساحة العمل

من المفيد التفكير في عرض ولوحة تتحرك تحت هذا العرض. وعندما تتحرك اللوحة لليسار، تصبح هذه القيمة أكثر إيجابية، ويصبح العرض الآن "يرى" الجانب الأيسر من اللوحة. وعندما تتحرك اللوحة إلى اليسار، تصبح هذه القيمة أكثر سلبية، ويصبح العرض الآن "يرى" الجانب الأيمن من اللوحة.

إنّ القيمة المربكة في هذه السمة هي أنّها لا تتضمّن، ويجب ألّا تتضمّن، الإزاحة absoluteLeft. ويرجع ذلك إلى أنّه يُستخدَم لاحتساب قيمة viewLeft.

يكون موضع viewLeft نسبيًا بالنسبة إلى موضع أصل مساحة العمل (على الرغم من أنّه يتم قياسه بوحدات البكسل). يكون منشأ مساحة العمل في أعلى يمين مساحة العمل (على الأقل عندما يكون مفعَّلاً). تم نقله من أعلى يمين blocklyDiv لكي لا يكون أسفل صندوق الأدوات.

عند تفعيل مساحة العمل، يكون موضع viewLeft وموضع أصل مساحة العمل في موضع X نفسه. عندما تنزلق اللوحة نحو اليمين أسفل طريقة العرض، تصبح هذه القيمة (scrollX) أكثر إيجابية، ويصبح viewLeft أكثر سلبية بالنسبة إلى منشأ مساحة العمل (تخيل منشأ مساحة العمل كنقطة على اللوحة تنزلق إلى اليمين أثناء تحرك اللوحة).

وبالتالي، إذا كان scrollX سيتضمّن absoluteLeft، سيؤدي ذلك إلى "عدم تغيير موضع البداية" لمساحة العمل. وهذا يعني أنّ viewLeft سيمثّل الحافة اليسرى من blocklyDiv، بدلاً من الحافة اليسرى من مساحة العمل.

scrollY الرقم

إزاحة التمرير العمودي الحالية بوحدات البكسل، بالنسبة إلى منشأ مساحة العمل

من المفيد التفكير في عرض ولوحة تتحرك تحت هذا العرض. وعندما تتحرك اللوحة للأسفل، تصبح هذه القيمة أكثر إيجابية، ويصبح العرض الآن "يرى" الجزء العلوي من اللوحة. وعندما تتحرك اللوحة للأعلى، تصبح هذه القيمة أكثر سلبية، و "تظهر" اللوحة الجزء السفلي منها.

إنّ العنصر المربك في هذه القيمة هو أنّها لا تتضمّن، ويجب ألا تتضمّن، الإزاحة absoluteTop. ويرجع سبب ذلك إلى أنّه يُستخدَم لاحتساب قيمة viewTop.

يكون موضع أعلى الشاشة نسبيًا بالنسبة إلى موضع أصل مساحة العمل (على الرغم من أنّه يتم التعبير عنه بوحدات البكسل). يكون منشأ مساحة العمل في أعلى يمين مساحة العمل (على الأقل عندما يكون مفعَّلاً). تم نقله من أعلى يمين blocklyDiv لكي لا يكون أسفل صندوق الأدوات.

عند تفعيل مساحة العمل، يكون موضع viewTop وموضع أصل مساحة العمل في موضع Y نفسه. عندما تنزلق اللوحة نحو الأسفل، تصبح هذه القيمة (scrollY) أكثر إيجابية، ويصبح viewTop أكثر سلبية بالنسبة إلى منشأ مساحة العمل (الصورة في منشأ مساحة العمل كنقطة على اللوحة تنزلق للأسفل أثناء تحرك اللوحة).

وبالتالي، إذا كان scrollY سيتضمّن absoluteTop، سيؤدي ذلك إلى "عدم تغيير موضع البداية" لمساحة العمل. وهذا يعني أنّ viewTop سيمثّل الحافة العلوية من blocklyDiv، بدلاً من الحافة العلوية من مساحة العمل.

startScrollX الرقم قيمة الانتقال الأفقي عند بدء الانتقال بوحدات البكسل
startScrollY الرقم قيمة الانتقال العمودي عند بدء الانتقال بالبكسل
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
trashcan المهملات | null المهملات في مساحة العمل (إن توفّرت)
zoomControls_ ZoomControls | null

الطُرق

الطريقة مفاتيح التعديل الوصف
addClass(className) تُضيف فئة CSS إلى مساحة العمل.
addTopBlock(block) تضيف حظرًا إلى قائمة أهم الحواجز.
addTopBoundedElement(element) تضيف عنصرًا محدودًا إلى قائمة أهم العناصر المحدودة.
addTopComment(comment) تضيف تعليقًا إلى قائمة أهم التعليقات.
canBeFocused() راجِع IFocusableNode.canBeFocused.
centerOnBlock(id, blockOnly) مرِّر مساحة العمل لتظهر في منتصف المربّع المحدّد. إذا كانت الكتلة تحتوي على كتل أخرى مكدسة تحتها، سيتم وضع مساحة العمل في منتصف الحزمة، ما لم يكن blockOnly صحيحًا.
cleanUp()‎ يمكنك تنظيف مساحة العمل من خلال ترتيب جميع الكتل في عمود بحيث لا تتداخل أي منها.
clear()‎ تخلص من جميع الكتل في مساحة العمل، مع تحسين لمنع تغيير حجمها.
copyOptionsForFlyout() تُنشئ مجموعة جديدة من الخيارات من خيارات مساحة العمل هذه باستخدام القيم ذات الصلة فقط بقائمة منسدلة.
createDom(opt_backgroundClass, injectionDiv) أنشئ عناصر DOM لمساحة العمل.
dispose()‎ إزالة مساحة العمل هذه يجب إلغاء الربط بجميع عناصر DOM لمنع تسرب الذاكرة.
getAbsoluteScale()

تعرِض هذه الدالة المقياس المطلق لمساحة العمل.

يتمّ ضرب مقياس مساحة العمل، فإذا كانت مساحة العمل "ب" (مثل محرِّر المُعدِّل) بمقياس "ص" مضمّنة في مساحة العمل الجذر "أ" بمقياس "س"، يكون المقياس الفعّال لمساحة العمل "ب" هو "س" * "ص"، لأنّه كعنصر فرعي من "أ"، تمّ تحويله من قَبل بمعامل التوسيع الخاص بـ "أ"، ثمّ تم تحويله من قَبل بمعامل التوسيع الخاص به. في العادة، يعمل هذا الإجراء على نحو جيد، ولكن بالنسبة إلى العناصر الشاملة (مثل محرّري الحقول) المرتبطة بصريًا بمساحة عمل معيّنة ولكنّها موجودة في المستوى الأعلى من DOM بدلاً من أن تكون عنصرًا فرعيًا لمساحة العمل المرتبطة بها، قد يكون من الضروري استخدام المقياس المطلق/الفعّال لعرضها بشكل مناسب.

getAllBlocks(ordered) العثور على جميع الكتل في مساحة العمل يتم ترتيب الكتل اختياريًا حسب الموضع، من الأعلى إلى الأسفل (مع تحيز طفيف للاتجاه من اليسار إلى اليمين أو من اليمين إلى اليسار).
getAudioManager() احصل على مدير الصوت لهذا الفضاء.
getBlockById(id) ابحث عن الحظر في مساحة العمل هذه باستخدام المعرّف المحدّد.
getBlocksBoundingBox()‎ احتساب مربّع الحدود للكتل على مساحة العمل نظام الإحداثيات: إحداثيات مساحة العمل
getBubbleCanvas() احصل على عنصر SVG الذي يشكّل سطح الفقاعة.
getButtonCallback(key) الحصول على دالة ردّ الاتصال المرتبطة بمفتاح معيّن، وذلك للنقرات على الأزرار والتصنيفات في النافذة المنبثقة
getCanvas() الحصول على عنصر SVG الذي يشكّل سطح الرسم
getComponentManager() تحصل على مدير المكوّنات لهذا الفضاء.
getCursor() مؤشر مساحة العمل هذه.
getDragTarget(e) تعرِض هذه السمة الهدف الذي تم سحبه بعد انتهاء حدث المؤشر.
getFlyout(opt_own) دالة الحصول على النافذة المنبثقة المرتبطة بمساحة العمل هذه. قد يكون هذا النافذة المنبثقة مملوكًا إما لأداة الأدوات أو مساحة العمل، وذلك حسب إعدادات أداة الأدوات. ستكون القيمة فارغة إذا لم يكن هناك نافذة منبثقة.
getFocusableElement() راجِع IFocusableNode.getFocusableElement.
getFocusableTree() راجِع IFocusableNode.getFocusableTree.
getGrid() الحصول على كائن الشبكة لهذه المساحة، أو القيمة null إذا لم يكن هناك أيّ كائن
getInverseScreenCTM()‎ دالة الحصول على CTM للشاشة المقلوبة
getMarkerManager() احصل على مدير العلامات لهذه المساحة.
getMetricsManager() تحصل على مدير المقاييس لهذا مساحة العمل.
getNavigator() تعرِض هذه السمة عنصرًا مسؤولاً عن تنسيق حركة التركيز بين العناصر في مساحة العمل هذه استجابةً لأوامر التنقّل في لوحة المفاتيح.
getNestedTrees() راجِع IFocusableTree.getNestedTrees.
getParentSvg()‎ احصل على عنصر SVG الذي يحتوي على مساحة العمل هذه. ملاحظة: نفترض أنّه لا يتمّ استدعاء هذا الإجراء إلا بعد إدراج مساحة العمل في نموذج DOM.
getRenderer() الحصول على أداة عرض الكتل المرفقة بهذه المساحة
getRestoredFocusableNode(previousNode) راجِع IFocusableTree.getRestoredFocusableNode.
getRootFocusableNode() راجِع IFocusableTree.getRootFocusableNode.
getRootWorkspace()
getScale() الحصول على عامل تكبير مساحة العمل
getSvgGroup() عرض مجموعة SVG لمساحة العمل
getTheme() الحصول على عنصر موضوع مساحة العمل
getToolbox() دالة الحصول على صندوق الأدوات المرتبط بمساحة العمل هذه، إذا كان هناك صندوق أدوات.
getToolboxCategoryCallback(key) الحصول على دالة ردّ الاتصال المرتبطة بمفتاح معيّن، وذلك لملء فئات مجموعة الأدوات المخصّصة في مساحة العمل هذه
getTopBlocks(ordered) يبحث عن الكتل ذات المستوى الأعلى ويعرضها. يتم ترتيب الكتل اختياريًا حسب الموضع، من الأعلى إلى الأسفل (مع تحيز طفيف للاتجاه من اليسار إلى اليمين أو من اليمين إلى اليسار).
getTopBoundedElements() تعثر على العناصر ذات الحدود في المستوى الأعلى وتُعيدها.
getWidth() عرض الإزاحة الأفقية لمساحة العمل مخصّص للتوافق مع LTR/RTL في XML.
hideChaff(onlyClosePopups) إغلاق التلميحات التوضيحية وقوائم السياقات وخيارات القوائم المنسدلة وما إلى ذلك
hideComponents(onlyClosePopups) إخفاء أي مكونات قابلة للاختفاء تلقائيًا (مثل النافذة المنبثقة وصندوق المهملات وأي مكونات مسجَّلة من قِبل المستخدم)
highlightBlock(id, opt_state) ميّز أو أزِل تمييز مربّع في مساحة العمل. غالبًا ما يتم استخدام ميزة تمييز الكتل لتمييز الكتل التي يتم تنفيذها حاليًا بشكل مرئي.
isDraggable() هل يمكن سحب مساحة العمل هذه؟
isDragging()

تعرِض قيمة صحيحة إذا كان المستخدم ينفِّذ حاليًا إيماءة سحب، أو إذا كانت عملية نقل بدأت باستخدام لوحة المفاتيح.

تتضمن إيماءات السحب عادةً نقل كتلة أو عنصر آخر في مساحة العمل أو الانتقال للأعلى أو للأسفل في النافذة المنبثقة/مساحة العمل.

يتم تنفيذ الحركات التي تبدأ من لوحة المفاتيح باستخدام البنية الأساسية للسحب، ويهدف ذلك إلى محاكاة (مجموعة فرعية من) إيماءات السحب، لذا يجب عادةً التعامل معها كما لو كانت عملية سحب مستندة إلى إيماءات.

isMovable()

هل يمكن نقل مساحة العمل هذه؟

وهذا يعني أنّه يمكن للمستخدم تغيير موضع الإحداثيات X وY لمساحة العمل من خلال الإدخال. ويمكن إجراء ذلك من خلال أشرطة التمرير أو عجلة التمرير أو السحب أو التكبير/التصغير باستخدام عجلة التمرير أو التصغير بإصبعَين (لأنّ التكبير/التصغير يكون في منتصف موضع الماوس). ولا يشمل ذلك التكبير/التصغير باستخدام عناصر التحكّم في التكبير/التصغير لأنّ الإحداثيتَين X وY يتم تحديدهما آليًا.

isMovableHorizontally() هل يمكن نقل مساحة العمل هذه أفقيًا؟
isMovableVertically() هل يمكن نقل مساحة العمل هذه عموديًا؟
isVisible() دالة الحصول على isVisible
lookUpFocusableNode(id) راجِع IFocusableTree.lookUpFocusableNode.
markFocused() وضع علامة على مساحة العمل هذه كمساحة العمل الرئيسية التي يتم التركيز عليها حاليًا
moveDrag(e) تتبُّع عملية سحب عنصر في مساحة العمل هذه
newBlock(prototypeName, opt_id) الحصول على وحدة تم إنشاؤها حديثًا
newComment(id) الحصول على تعليق تم إنشاؤه مؤخرًا
onNodeBlur() راجِع IFocusableNode.onNodeBlur.
onNodeFocus() راجِع IFocusableNode.onNodeFocus.
onTreeBlur(nextTree) راجِع IFocusableTree.onTreeBlur.
onTreeFocus(_node, _previousTree) راجِع IFocusableTree.onTreeFocus.
recordDragTargets() أنشئ قائمة بكل مناطق الحذف في مساحة العمل هذه.
refreshTheme() إعادة تحميل جميع الكتل في مساحة العمل بعد تحديث موضوع
registerButtonCallback(key, func) سجِّل دالة ردّ اتصال مرتبطة بمفتاح معيّن للنقرات على الأزرار والتصنيفات في النافذة المنبثقة. على سبيل المثال، يجب مطابقة زر محدّد من خلال ملف XML من خلال طلب registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) سجِّل وظيفة طلب معاودة الاتصال المرتبطة بمفتاح معيّن لملء فئات مجموعة الأدوات المخصّصة في مساحة العمل هذه. اطّلِع على فئات المتغيّرات والإجراءات كمثال.
removeButtonCallback(key) أزِل طلب إعادة الاتصال الناتج عن النقر على زر في النافذة المنبثقة.
removeClass(className) تؤدي هذه العملية إلى إزالة فئة CSS من مساحة العمل.
removeToolboxCategoryCallback(key) أزِل طلب إعادة الاتصال عند النقر على اسم فئة مخصّصة في صندوق الأدوات.
removeTopBlock(block) تزيل مجموعة من العناصر من قائمة أهم المجموعات.
removeTopBoundedElement(element) تزيل عنصرًا محدودًا من قائمة أهم العناصر المحدودة.
removeTopComment(comment) إزالة تعليق من قائمة أهم التعليقات
render()‎ عرض جميع الكتل في مساحة العمل
resize()‎ تغيير حجم كل عناصر مساحة العمل في Chrome وإعادة وضعها (صندوق الأدوات المهملات وأشرطة التمرير وما إلى ذلك) يجب استدعاء هذا الإجراء عند حدوث تغيير يتطلّب إعادة احتساب أبعاد ومواقف المهملات والتكبير/التصغير وصندوق الأدوات وما إلى ذلك (مثل تغيير حجم النافذة).
scroll(x, y) انتقِل في مساحة العمل إلى مسافة محددة (بالبكسل)، مع الحفاظ على حدود مساحة العمل. راجِع التعليق على workspaceSvg.scrollX للحصول على مزيد من التفاصيل حول معنى هذه القيم.
scrollCenter() اضبط مساحة العمل في المنتصف.
setIsReadOnly(readOnly)
setNavigator(newNavigator) تُستخدَم هذه السمة لضبط مثيل Navigator المستخدَم في مساحة العمل هذه.
setResizeHandlerWrapper(handler) احفظ بيانات معالِج تغيير الحجم لنتمكّن من حذفها لاحقًا في عملية التخلص.
setResizesEnabled(enabled) تعديل ما إذا كانت مساحة العمل هذه تتيح تغيير الحجم في حال تفعيل هذه الميزة، سيتم تغيير حجم مساحة العمل عند الاقتضاء. في حال إيقاف هذه الميزة، لن يتم تغيير حجم مساحة العمل إلى أن تتم إعادة تفعيلها. استخدِم هذا الخيار لتجنُّب تغيير حجم الملفات أثناء إجراء عملية مجمّعة لتحسين الأداء.
setScale(newScale) اضبط عامل تكبير مساحة العمل.
setTheme(theme) اضبط عنصر مظهر مساحة العمل. في حال عدم تمرير أي مظهر، يتم ضبط المظهر التلقائي على Classic.
setVisible(isVisible) تبديل مستوى رؤية مساحة العمل مخصّصة حاليًا لمساحة العمل الرئيسية فقط.
startDrag(e, xy) ابدأ تتبُّع عملية سحب عنصر في مساحة العمل هذه.
translate(x, y) حوِّل مساحة العمل هذه إلى إحداثيات جديدة.
updateInverseScreenCTM()‎ ضَع علامة على CTM للشاشة العكسية على أنّها غير صحيحة.
updateToolbox(toolboxDef) عدِّل شجرة الكتل في صندوق الأدوات الحالي.
zoom(x, y, amount) تكبير مساحة العمل أو تصغيرها بالنسبة إلى الإحداثيَين (x, y) المحدَّدَين أو في مركزهما
zoomCenter(type) تكبير الكتل في منتصف الشاشة من خلال التكبير أو التصغير
zoomToFit()‎ يمكنك تكبير الوحدات لكي تلائم مساحة العمل إن أمكن.