блочно > WorkspaceSvg

Класс WorkspaceSvg

Класс для рабочей области. Это область экрана с дополнительной корзиной, полосами прокрутки, пузырьками и перетаскиванием.

Подпись:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Расширяет: Рабочая область

Реализует: IASTNodeLocationSvg .

Конструкторы

Конструктор Модификаторы Описание
(конструктор)(опции) Создает новый экземпляр класса WorkspaceSvg

Характеристики

Свойство Модификаторы Тип Описание
КонфигурироватьКонтекстМеню ((menuOptions: ContextMenuOption[], e: Event) => void) | нулевой Разработчики могут определить эту функцию, чтобы добавлять настраиваемые параметры меню в контекстное меню рабочей области или редактировать набор параметров меню, созданный рабочей областью.
КлавиатураДоступностьРежим логическое значение True, если режим специальных возможностей клавиатуры включен, в противном случае — false.
оказанный логическое значение Статус рендеринга рабочей области SVG. Возвращает false для автономных рабочих пространств и true для экземпляров WorkspaceSvg .
шкала число Текущий масштаб.
полоса прокрутки Полоса прокруткиПара | нулевой Полосы прокрутки этого рабочего пространства, если они существуют.
прокруткаX число

Текущее смещение горизонтальной прокрутки в пикселях относительно начала координат рабочей области.

Полезно подумать о представлении и о холсте, перемещающемся под этим представлением. По мере перемещения холста вправо это значение становится более положительным, и вид теперь «видит» левую сторону холста. По мере перемещения холста влево это значение становится более отрицательным, и представление теперь «видит» правую сторону холста.

Самое запутанное в этом значении то, что оно не включает и не должно включать смещение AbsoluteLeft. Это связано с тем, что он используется для вычисления значения viewLeft.

ViewLeft относится к началу рабочего пространства (хотя и в пикселях). Началом рабочей области является верхний левый угол рабочей области (по крайней мере, когда она включена). Он сдвинут из верхнего левого угла блока BlocklyDiv, чтобы не оказаться под панелью инструментов.

Когда рабочая область включена, viewLeft и начало рабочей области находятся в одном и том же месте X. Когда холст скользит вправо под представлением, это значение (scrollX) становится более положительным, а viewLeft становится более отрицательным относительно начала координат рабочей области (представьте начало рабочей области как точку на холсте, скользящую вправо при перемещении холста). .

Таким образом, если бы ScrollX включал AbsoluteLeft, это в некотором смысле «отменило бы» начало координат рабочей области. Это означает, что viewLeft будет представлять левый край blocklyDiv, а не левый край рабочей области.

прокрутка число

Текущее смещение вертикальной прокрутки в пикселях относительно начала координат рабочей области.

Полезно подумать о представлении и о холсте, перемещающемся под этим представлением. По мере перемещения холста вниз это значение становится более положительным, и вид теперь «видит» верхнюю часть холста. По мере перемещения холста вверх это значение становится более отрицательным, и вид «видит» нижнюю часть холста.

С этим значением сбивает с толку то, что оно не включает и не должно включать смещение AbsoluteTop. Это связано с тем, что он используется для расчета значения viewTop.

ViewTop указывается относительно начала рабочей области (хотя и в пикселях). Началом рабочей области является верхний левый угол рабочей области (по крайней мере, когда она включена). Он сдвинут из верхнего левого угла блока BlocklyDiv, чтобы не оказаться под панелью инструментов.

Когда рабочая область включена, viewTop и начало рабочей области находятся в одном и том же месте по оси Y. По мере того, как холст скользит вниз, это значение (scrollY) становится более положительным, а viewTop становится более отрицательным относительно начала координат рабочей области (изображение в начале координат рабочей области в виде точки на холсте, скользящей вниз при перемещении холста).

Таким образом, если бы прокрутка включала AbsoluteTop, это в некотором смысле «отменило бы» начало координат рабочей области. Это означает, что viewTop будет представлять собой верхний край blocklyDiv, а не верхний край рабочей области.

НачатьПрокруткаX число Значение горизонтальной прокрутки при начале прокрутки в пикселях.
НачатьПрокруткуY число Значение вертикальной прокрутки при начале прокрутки в пикселях.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected Менеджер тем
мусорное ведро Мусорная корзина | нулевой Мусорная корзина рабочей области (если есть).
ZoomControls_ ZoomControls | нулевой

Методы

Метод Модификаторы Описание
addTopBlock(блок) Добавляет блок в список верхних блоков.
addTopBoundedElement (элемент) Добавляет ограниченный элемент в список элементов, ограниченных сверху.
addTopComment(комментарий) Добавляет комментарий в список самых популярных комментариев.
centerOnBlock(id,blockOnly) Прокрутите рабочую область до центра данного блока. Если под блоком расположены другие блоки, рабочая область будет центрирована в стеке, если только для параметра BlockOnly не установлено значение true.
ОчиститьUp() Очистите рабочее пространство, расположив все блоки в столбце.
прозрачный() Удалите все блоки в рабочей области с оптимизацией, предотвращающей изменение размеров.
createDom (opt_backgroundClass, инъекцииDiv) Создайте элементы DOM рабочей области.
createVariable (имя, opt_type, opt_id) Создайте новую переменную с заданным именем. Обновите всплывающее меню, чтобы сразу отобразить новую переменную.
удалитьVariableById (идентификатор) Удалить переменную по переданному идентификатору. Обновите всплывающее меню, чтобы сразу показать, что переменная удалена.
распоряжаться() Удалите это рабочее пространство. Отключите связь со всеми элементами DOM, чтобы предотвратить утечку памяти.
getAllBlocks (заказано) Найдите все блоки в рабочей области. Блоки опционально сортируются по положению; сверху вниз (с небольшим смещением LTR или RTL).
получитьАудиоМенеджер() Получите аудиоменеджер для этого рабочего пространства.
getBlockById (идентификатор) Найдите в этой рабочей области блок с указанным идентификатором.
getBlocksBoundingBox() Рассчитайте ограничивающую рамку для блоков в рабочей области. Система координат: координаты рабочей области.
getBubbleCanvas() Получите элемент SVG, который формирует поверхность пузыря.
getButtonCallback (ключ) Получите функцию обратного вызова, связанную с данной клавишей, для щелчков по кнопкам и меткам во всплывающем меню.
getCanvas() Получите элемент SVG, образующий поверхность рисования.
получитьМенеджерКомпонентов() Получает диспетчер компонентов для этой рабочей области.
getCursor() Курсор для этой рабочей области.
getDragTarget (е) Возвращает цель перетаскивания, когда событие указателя закончилось.
getFlyout (opt_own) Getter для всплывающего меню, связанного с этой рабочей областью. Это всплывающее меню может принадлежать либо набору инструментов, либо рабочей области, в зависимости от конфигурации набора инструментов. Оно будет нулевым, если всплывающего меню нет.
getGrid() Получите объект сетки для этой рабочей области или значение NULL, если его нет.
getInverseScreenCTM() Геттер для инвертированного экрана CTM.
getMarkerManager() Получите менеджер маркеров для этого рабочего пространства.
getMetricsManager() Получает диспетчер метрик для этой рабочей области.
getParentSvg() Получите элемент SVG, содержащий это рабочее пространство. Примечание. Мы предполагаем, что это вызывается только после того, как рабочая область была добавлена ​​в DOM.
getRenderer() Подключите средство рендеринга блоков к этому рабочему пространству.
getRootWorkspace()
getScale() Получите коэффициент масштабирования рабочей области. Если у рабочей области есть родительский элемент, мы вызываем его, чтобы получить масштаб рабочей области.
getSvgGroup() Возвращает группу SVG для рабочей области.
getTheme() Получите объект темы рабочей области.
getToolbox() Геттер для набора инструментов, связанного с этой рабочей областью, если таковой существует.
getToolboxCategoryCallback (ключ) Получите функцию обратного вызова, связанную с заданным ключом, для заполнения пользовательских категорий набора инструментов в этой рабочей области.
getTopBlocks (заказано) Находит блоки верхнего уровня и возвращает их. Блоки опционально сортируются по положению; сверху вниз (с небольшим смещением LTR или RTL).
getTopBoundedElements() Находит ограниченные элементы верхнего уровня и возвращает их.
getWidth() Возвращает горизонтальное смещение рабочей области. Предназначен для совместимости с LTR/RTL в XML.
скрытьChaff (толькоClosePopups) Закройте всплывающие подсказки, контекстные меню, раскрывающиеся списки и т. д.
скрытьКомпоненты (толькоClosePopups) Скройте все автоматически скрываемые компоненты (например, всплывающее окно, корзину и любые зарегистрированные пользователем компоненты).
ВыделитеBlock (id, opt_state) Выделите или снимите выделение блока в рабочей области. Подсветка блоков часто используется для визуального обозначения блоков, выполняющихся в данный момент.
isDraggable() Можно ли перетаскивать это рабочее пространство?
isDragged() Пользователь в данный момент перетаскивает блок или прокручивает всплывающее меню/рабочую область?
isMovable()

Это рабочее место передвижное?

Это означает, что пользователь может изменить положение координат XY рабочей области посредством ввода. Это можно сделать с помощью полос прокрутки, колеса прокрутки, перетаскивания или масштабирования с помощью колеса прокрутки или сжатия (поскольку масштабирование центрируется по положению мыши). Сюда не входит масштабирование с помощью элементов управления масштабированием, поскольку координаты XY определяются программно.

isMovableHorizontally() Можно ли перемещать это рабочее пространство по горизонтали?
isMovableVertically() Можно ли перемещать это рабочее пространство по вертикали?
isVisible() Геттер для isVisible
МаркФокус() Отметьте это рабочее пространство как основное рабочее пространство, на котором в данный момент сосредоточено внимание.
перемещениеПеретаскивание (е) Отслеживайте перетаскивание объекта в этом рабочем пространстве.
newBlock (имя прототипа, opt_id) Получите вновь созданный блок.
вставить (состояние) Вставляет предоставленный блок или комментарий рабочей области в рабочую область. Не проверяет, имеется ли оставшаяся емкость для объекта, это следует сделать перед вызовом этого метода.
записьDragTargets() Составьте список всех областей удаления для этого рабочего пространства.
обновить тему() Обновите все блоки в рабочей области после обновления темы.
RegisterButtonCallback (ключ, функция) Зарегистрируйте функцию обратного вызова, связанную с данной клавишей, для щелчков по кнопкам и меткам во всплывающем меню. Например, кнопка, указанная в XML должен соответствовать вызову RegisterButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
RegisterToolboxCategoryCallback (ключ, функция) Зарегистрируйте функцию обратного вызова, связанную с заданным ключом, для заполнения пользовательских категорий набора инструментов в этой рабочей области. В качестве примера см. категории переменных и процедур.
RemoveButtonCallback (ключ) Удалите обратный вызов для нажатия кнопки во всплывающем меню.
удалитьToolboxCategoryCallback (ключ) Удалите обратный вызов для щелчка по имени пользовательской категории на панели инструментов.
удалитьTopBlock(блок) Удаляет блок из списка верхних блоков.
удалитьTopBoundedElement (элемент) Удаляет ограниченный элемент из списка элементов, ограниченных сверху.
удалитьTopComment(комментарий) Удаляет комментарий из списка самых популярных комментариев.
renameVariableById (id, новое имя) Переименуйте переменную, обновив ее имя в карте переменных. Обновите всплывающее меню, чтобы немедленно отобразить переименованную переменную.
оказывать() Рендеринг всех блоков в рабочей области.
изменить размер() Изменение размера и положения всей рабочей области Chrome (панель инструментов, корзина, полосы прокрутки и т. д.). Эту функцию следует вызывать, когда что-то меняется, что требует пересчета размеров и положения корзины, масштабирования, панели инструментов и т. д. (например, изменение размера окна).
центр прокрутки() Отцентрируйте рабочее пространство.
setResizeHandlerWrapper (обработчик) Сохраните данные обработчика изменения размера, чтобы мы могли удалить их позже при удалении.
setResizesEnabled (включено) Уточните, включено ли изменение размеров в этой рабочей области. Если этот параметр включен, рабочая область будет изменять размер при необходимости. Если этот параметр отключен, размер рабочей области не будет меняться до тех пор, пока он не будет повторно включен. Используйте, чтобы избежать изменения размера во время пакетной операции для повышения производительности.
setScale (новыйМасштаб) Установите коэффициент масштабирования рабочей области.
setTheme(тема) Установите объект темы рабочей области. Если тема не задана, по умолчанию используется Classic тема.
setVisible(isVisible) Переключает видимость рабочей области. В настоящее время предназначен только для основного рабочего пространства.
startDrag(e, xy) Начните отслеживать перетаскивание объекта в этом рабочем пространстве.
перевести (х, у) Переведите это рабочее пространство в новые координаты.
updateInverseScreenCTM() Отметьте инверсный экран CTM как грязный.
updateToolbox (toolboxDef) Измените дерево блоков на существующем наборе инструментов.
масштабирование (x, y, количество) Увеличивает или уменьшает рабочую область относительно заданной координаты (x, y) или центрирует ее.
ZoomCenter (тип) Масштабирование блоков, центрированных в центре обзора, с увеличением или уменьшением масштаба.
ZoomToFit() Увеличьте масштаб блоков, чтобы они поместились в рабочем пространстве, если это возможно.