指標管理工具

Metrics Manager 會收集並回報與 Blockly 工作區相關的所有指標,本指南說明從 Metrics Manager 傳回的每組指標代表的意義。如要進一步瞭解 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 指標包含工作區父項 SVG 的 widthheight。在主要工作區中,這是包含 blocklySvg 類別的 SVG。這個 SVG 包含可見的工作區和工具箱。

Blockly 工作區,周圍有藍色矩形。

查看指標

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

檢視指標由可視區域的 heightwidthtopleft 組成。可視區域是工作區中可見的部分。這不包含任一類型的工具箱。

Blockly 工作區,周圍區域為藍色矩形,且不含工具方塊。

左上方是相對於工作區來源。當您拖曳工作區,就能更新可視區域的頂端和左側位置。

Blockly 工作區,該區域周圍有藍色矩形,但不包括工具方塊,以及從左上角顯示的起點偏移。

絕對指標

workspace.getMetricsManager().getAbsoluteMetrics();

絕對指標包含與 pareng SVG 可視區域的 topleft 偏移。根據工具方塊在工作區的位置而定,這通常是工具箱的寬度或高度。

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 外掛程式中找到這類工具。