Менеджер показателей

Менеджер метрик собирает и предоставляет отчёты по всем метрикам, относящимся к рабочему пространству Blockly. В этом руководстве описывается значение каждого набора метрик, возвращаемых Менеджером метрик. Подробнее о Менеджере метрик вы можете узнать, посмотрев наш видеообзор «Подробный анализ метрик» за 2021 год .

Метрики

Метрики панели инструментов

workspace.getMetricsManager().getToolboxMetrics();

Метрики панели инструментов состоят из height , width и position панели инструментов категории. Они не включают информацию о всплывающем меню, прикреплённом к панели инструментов.

Рабочее пространство Blockly со стрелками, показывающими ширину и высоту панели инструментов.

position панели инструментов имеет тип Blockly.utils.toolbox.Position .

Всплывающие метрики

workspace.getMetricsManager().getFlyoutMetrics();

Метрики выпадающего списка состоят из height , width и position выпадающего списка инструментов. Важно отметить, что это не выпадающий список, прикреплённый к панели инструментов категории. Это относится только к выпадающим спискам инструментов, как показано на фотографии ниже.

Рабочее пространство Blockly со стрелками, показывающими ширину и высоту всплывающего окна.

position выпадающего списка имеет тип Blockly.utils.toolbox.Position .

Метрики SVG

workspace.getMetricsManager().getSvgMetrics();

Метрики SVG складываются из width и height родительского SVG-изображения рабочей области. Для основного рабочего пространства это SVG с классом blocklySvg . Этот SVG включает в себя видимое рабочее пространство, а также панель инструментов.

Рабочее пространство Blockly с синим прямоугольником вокруг него.

Просмотр метрик

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

Метрики вида включают height , width , top и left области просмотра. Область просмотра — это видимая часть рабочего пространства. Сюда не входят ни один из типов панелей инструментов.

Рабочее пространство Blockly с синим прямоугольником вокруг области, не включая панель инструментов.

Верхний левый угол определяется относительно начала координат рабочей области. При перемещении курсора по рабочей области обновляются верхнее и левое положения области просмотра.

Рабочее пространство Blockly с синим прямоугольником вокруг области, не включая панель инструментов, и началом координат, смещенным от верхнего левого угла.

Абсолютные метрики

workspace.getMetricsManager().getAbsoluteMetrics();

Абсолютные метрики состоят из смещения области просмотра top и left относительно SVG-элемента. В зависимости от расположения панели инструментов на рабочем пространстве, это обычно её ширина или высота.

Рабочее пространство Blockly с синей линией справа от панели инструментов и поверх рабочего пространства.Рабочее пространство Blockly с горизонтальной панелью инструментов. Синяя линия расположена слева от рабочего пространства и под панелью инструментов.

Метрики контента

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

Показатели контента состоят из height , width , top и left ограничивающей рамки вокруг любых блоков или комментариев рабочей области.

Рабочее пространство Blockly с синей рамкой вокруг его содержимого.

Метрики прокрутки

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

Метрики прокрутки включают в себя height , width , top и left прокручиваемой области. Для перемещаемого рабочего пространства прокручиваемая область — это область контента с отступами.

Рабочее пространство Blockly с большим синим прямоугольником вокруг него.

Системы координат

По умолчанию все метрики, рассчитываемые менеджером метрик, возвращаются в виде пиксельных координат. При необходимости можно получить определённые метрики в координатах рабочей области, передав значение true методам работы с метриками. Например, metricsManager.getViewMetrics(true) .

workspaceCoordinate = pixelCoordinates / workspace.scale

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

Переопределяющие метрики

Разработчики, желающие предоставить собственные метрики для рабочей области, могут зарегистрировать заменяющий объект менеджера метрик, который реализует интерфейс IMetricsManager или расширяет Blockly.MetricsManager .

Пример этого можно найти в плагине Continuous Toolbox или в плагине Fixed Edges .