Менеджер метрик собирает и предоставляет отчёты по всем метрикам, относящимся к рабочему пространству Blockly. В этом руководстве описывается значение каждого набора метрик, возвращаемых Менеджером метрик. Подробнее о Менеджере метрик вы можете узнать, посмотрев наш видеообзор «Подробный анализ метрик» за 2021 год .
Метрики
Метрики панели инструментов
workspace.getMetricsManager().getToolboxMetrics();
Метрики панели инструментов состоят из height
, width
и position
панели инструментов категории. Они не включают информацию о всплывающем меню, прикреплённом к панели инструментов.
position
панели инструментов имеет тип Blockly.utils.toolbox.Position
.
Всплывающие метрики
workspace.getMetricsManager().getFlyoutMetrics();
Метрики выпадающего списка состоят из height
, width
и position
выпадающего списка инструментов. Важно отметить, что это не выпадающий список, прикреплённый к панели инструментов категории. Это относится только к выпадающим спискам инструментов, как показано на фотографии ниже.
position
выпадающего списка имеет тип Blockly.utils.toolbox.Position
.
Метрики SVG
workspace.getMetricsManager().getSvgMetrics();
Метрики SVG складываются из width
и height
родительского SVG-изображения рабочей области. Для основного рабочего пространства это SVG с классом blocklySvg
. Этот SVG включает в себя видимое рабочее пространство, а также панель инструментов.
Просмотр метрик
workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);
Метрики вида включают height
, width
, top
и left
области просмотра. Область просмотра — это видимая часть рабочего пространства. Сюда не входят ни один из типов панелей инструментов.
Верхний левый угол определяется относительно начала координат рабочей области. При перемещении курсора по рабочей области обновляются верхнее и левое положения области просмотра.
Абсолютные метрики
workspace.getMetricsManager().getAbsoluteMetrics();
Абсолютные метрики состоят из смещения области просмотра top
и left
относительно SVG-элемента. В зависимости от расположения панели инструментов на рабочем пространстве, это обычно её ширина или высота.
Метрики контента
workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);
Показатели контента состоят из height
, width
, top
и left
ограничивающей рамки вокруг любых блоков или комментариев рабочей области.
Метрики прокрутки
workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);
Метрики прокрутки включают в себя height
, width
, top
и left
прокручиваемой области. Для перемещаемого рабочего пространства прокручиваемая область — это область контента с отступами.
Системы координат
По умолчанию все метрики, рассчитываемые менеджером метрик, возвращаются в виде пиксельных координат. При необходимости можно получить определённые метрики в координатах рабочей области, передав значение true
методам работы с метриками. Например, metricsManager.getViewMetrics(true)
.
workspaceCoordinate = pixelCoordinates / workspace.scale
Координаты рабочей области обычно используются для элементов, расположенных в рабочей области, таких как блоки и комментарии. Координаты рабочей области не меняются при изменении масштаба пользователем.
Переопределяющие метрики
Разработчики, желающие предоставить собственные метрики для рабочей области, могут зарегистрировать заменяющий объект менеджера метрик, который реализует интерфейс IMetricsManager
или расширяет Blockly.MetricsManager
.
Пример этого можно найти в плагине Continuous Toolbox или в плагине Fixed Edges .