Менеджер метрик

Менеджер метрик собирает и сообщает обо всех показателях, относящихся к рабочему пространству 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 .