측정항목 관리자는 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를 확장하는 대체 측정항목 관리자 객체를 등록할 수 있습니다.
이러한 예는 연속 도구 상자 플러그인 또는 고정된 가장자리 플러그인에서 확인할 수 있습니다.