측정항목 관리자는 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();
절대 측정항목은 상위 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
워크스페이스 좌표는 일반적으로 블록, 워크스페이스 댓글 등 워크스페이스에 있는 항목에 사용됩니다. 사용자가 확대/축소해도 Workspace 좌표는 변경되지 않습니다.
측정항목 재정의
작업공간에 자체 측정항목을 제공하려는 개발자는 IMetricsManager
인터페이스를 구현하거나 Blockly.MetricsManager
를 확장하는 대체 측정항목 관리자 객체를 등록할 수 있습니다.
이러한 예는 연속 도구 상자 플러그인 또는 고정된 가장자리 플러그인에서 확인할 수 있습니다.