指標マネージャー

Metrics Manager は、Blockly ワークスペースに関連するすべての指標を収集してレポートします。このガイドでは、Metrics Manager から返される各指標セットの意味について説明します。Metrics Manager の詳細については、2021 年の指標の詳細もご覧ください。

指標

ツールボックスの指標

workspace.getMetricsManager().getToolboxMetrics();

ツールボックス指標は、カテゴリ ツールボックスの heightwidthposition で構成されます。ツールボックスに付いているフライアウトの情報は含まれません。

ツールボックスの幅と高さを示す矢印が表示された Blockly ワークスペース。

ツールボックスの positionBlockly.utils.toolbox.Position 型です。

フライアウトの指標

workspace.getMetricsManager().getFlyoutMetrics();

フライアウト指標は、フライアウト ツールボックスの heightwidthposition で構成されます。これはカテゴリ ツールボックスに付随するフライアウトではないことに注意してください。これは、下の写真に示すように、フライアウト ツールボックスにのみ適用されます。

Blockly ワークスペース。フライアウトの幅と高さを示す矢印が表示されています。

フライアウトの positionBlockly.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();

絶対指標は、親 SVG からのビューポートの top オフセットと left オフセットで構成されます。ワークスペースでのツールボックスの位置に応じて、通常はツールボックスの幅または高さになります。

ツールボックスの右側とワークスペースの上部に青い線が表示された 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 プラグインをご覧ください。