指标管理器

指标管理器会收集并报告与 Blockly 工作区。本指南介绍了每组指标的含义 指标管理器返回的值。如需详细了解 Metrics Manager 您还可以观看我们的 2021 年指标深入探究

指标

工具箱指标

workspace.getMetricsManager().getToolboxMetrics();

工具箱指标由 heightwidthposition 类别工具箱但这并不包括 添加到工具箱中。

Blockly 工作区,其中的箭头显示了工具箱的宽度和高度。

工具箱的 position 类型为 Blockly.utils.toolbox.Position

飞出指标

workspace.getMetricsManager().getFlyoutMetrics();

浮出指标由 heightwidthposition 浮出工具箱。需要注意的是,这并不是 。这仅适用于浮出工具箱, 如以下照片所示。

Blockly 工作区,其中的箭头显示了浮出控件的宽度和高度。

浮出控件的 position 的类型为 Blockly.utils.toolbox.Position

SVG 指标

workspace.getMetricsManager().getSvgMetrics();

SVG 指标由工作区父级的 widthheight 组成 SVG。对于主工作区,这是包含 blocklySvg 类的 SVG。这个 SVG 包含可见的工作区和工具箱。

Blockly 工作区,周围有一个蓝色矩形。

查看指标

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

视图指标由 heightwidthtopleft 视口。视口是工作区中可见的部分。这个 不包含这两种工具箱。

Blockly 工作区,不包括工具箱的区域,周围有一个蓝色矩形。

左上角相对于工作区原点。当我们拖动时 视口的顶部和左侧位置是 已更新。

Blockly 工作区,在不包括工具箱的区域周围有一个蓝色矩形,并且显示的原点相对于左上角的偏移量。

绝对指标

workspace.getMetricsManager().getAbsoluteMetrics();

绝对指标由视口的 top 偏移量和 left 偏移量组成 Pareng SVG根据工具箱在 工作区,这通常是工具箱的宽度或高度。

Blockly 工作区,工具箱右侧和工作区上方都有一条蓝线。 具有水平工具箱的 Blockly 工作区。工作区左侧和工具箱下方有一条蓝线。

内容指标

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

内容指标由 heightwidthtopleft 组成 边框或工作区备注以外的区域。

Blockly 工作区,工作区内容周围有一个蓝色框。

滚动指标

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

滚动指标由 heightwidthtopleft 可滚动区域对于可移动工作区,可滚动区域就是 外加一些内边距。

Blockly 工作区,周围有一个大的蓝色框。

坐标系

默认情况下,由 Metrics Manager 计算的所有指标都会以像素的形式返回 坐标。在适用情况下,您可以选择 将 true 传递给指标方法,即可实现工作区坐标。例如 metricsManager.getViewMetrics(true)

workspaceCoordinate = pixelCoordinates / workspace.scale

工作区坐标通常用于工作区中的各项内容, 例如区块和工作区备注工作区坐标不会更改 会随用户缩放而变化。

覆盖指标

希望自行提供工作区指标的开发者 可以注册一个替换指标管理器对象, IMetricsManager 接口或扩展 Blockly.MetricsManager

相关示例可以在 Continuous Toolbox 插件Fixed Edges 插件中找到。