측정항목 관리자는 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 측정항목은 작업공간의 상위 SVG인 width
과 height
로 구성됩니다. 기본 작업공간의 경우 blocklySvg
클래스가 포함된 SVG입니다. 이 SVG에는 표시되는 작업공간과 도구 상자가 포함되어 있습니다.
측정항목 보기
workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);
뷰 측정항목은 표시 영역의 height
, width
, top
, left
로 구성됩니다. 표시 영역은 표시되는 작업공간의 일부입니다. 여기에는 두 가지 유형의 도구 상자 모두 포함되지 않습니다.
왼쪽 상단은 작업공간 원점을 기준으로 합니다. 작업공간을 드래그하면 표시 영역의 상단과 왼쪽 위치가 업데이트됩니다.
절대 측정항목
workspace.getMetricsManager().getAbsoluteMetrics();
절대 측정항목은 pareng SVG에서 가져온 표시 영역의 top
및 left
오프셋으로 구성됩니다. 도구 상자가 작업공간에서 배치되는 위치에 따라 일반적으로 도구 상자의 너비 또는 높이가 됩니다.
콘텐츠 통계
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
를 확장하는 대체 측정항목 관리자 객체를 등록할 수 있습니다.
이에 관한 예는 연속 도구 상자 플러그인 또는 고정 가장자리 플러그인에서 확인할 수 있습니다.