Der Messwertmanager erfasst und meldet alle Messwerte, die sich auf den Blockly-Arbeitsbereich beziehen. In diesem Leitfaden wird die Bedeutung der einzelnen Messwertgruppen beschrieben, die vom Metrics Manager zurückgegeben werden. Weitere Informationen zum Messwertmanager finden Sie auch in unserem Metrics Deep Dive 2021.
Messwerte
Messwerte für Bearbeitungswerkzeuge
workspace.getMetricsManager().getToolboxMetrics();
Die Toolbox-Messwerte setzen sich aus den height
, width
und position
einer Kategorie-Toolbox zusammen. Informationen zum Flyout, das an die Toolbox angehängt ist, sind nicht enthalten.
Die position
der Toolbox hat den Typ Blockly.utils.toolbox.Position
.
Messwerte für Flyout
workspace.getMetricsManager().getFlyoutMetrics();
Die Flyout-Messwerte bestehen aus height
, width
und position
einer Flyout-Toolbox. Wichtig: Dies ist nicht das Flyout, das an die Kategorie-Toolbox angehängt ist. Das gilt nur für Flyout-Toolboxen, wie auf dem Foto unten zu sehen ist.
Die position
des Flyouts hat den Typ Blockly.utils.toolbox.Position
.
SVG-Messwerte
workspace.getMetricsManager().getSvgMetrics();
Die SVG-Messwerte setzen sich aus dem width
und dem height
des übergeordneten SVG des Arbeitsbereichs zusammen. Für den Hauptarbeitsbereich ist dies das SVG mit der Klasse blocklySvg
.
Diese SVG-Datei enthält den sichtbaren Arbeitsbereich sowie die Toolbox.
Messwerte ansehen
workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);
Die Ansichts-Messwerte setzen sich aus dem height
, width
, top
und left
des Viewports zusammen. Der Darstellungsbereich ist der sichtbare Teil des Arbeitsbereichs. Die beiden Arten von Toolboxes sind nicht enthalten.
Die obere linke Ecke wird relativ zum Ursprung des Arbeitsbereichs angegeben. Wenn wir den Arbeitsbereich verschieben, werden die obere und linke Position des Darstellungsbereichs aktualisiert.
Absolute Messwerte
workspace.getMetricsManager().getAbsoluteMetrics();
Die absoluten Messwerte bestehen aus dem top
- und left
-Offset des Viewports vom übergeordneten SVG. Je nachdem, wo sich die Toolbox im Arbeitsbereich befindet, ist dies in der Regel die Breite oder Höhe der Toolbox.
Content-Messdaten
workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);
Die Inhaltsmesswerte setzen sich aus dem height
, width
, top
und left
des Begrenzungsrahmens um alle Blöcke oder Workspace-Kommentare zusammen.
Messwerte für Scrollen
workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);
Die Scrollmesswerte setzen sich aus der height
, width
, top
und left
des scrollbaren Bereichs zusammen. Bei einem verschiebbaren Arbeitsbereich ist der scrollbare Bereich der Inhaltsbereich plus etwas Padding.
Koordinatensysteme
Standardmäßig werden alle vom Metrics Manager berechneten Messwerte als Pixelkoordinaten zurückgegeben. Falls zutreffend, können Sie bestimmte Messwerte in Arbeitsbereichskoordinaten abrufen, indem Sie true
an die Messwertmethoden übergeben. Beispiel: metricsManager.getViewMetrics(true)
workspaceCoordinate = pixelCoordinates / workspace.scale
Workspace-Koordinaten werden in der Regel für Elemente verwendet, die sich im Arbeitsbereich befinden, z. B. Blöcke und Workspace-Kommentare. Die Workspace-Koordinaten ändern sich nicht, wenn der Nutzer heran- oder herauszoomt.
Messwerte überschreiben
Entwickler, die eigene Messwerte für den Arbeitsbereich bereitstellen möchten, können ein Ersatzobjekt für den Messwertmanager registrieren, das die IMetricsManager
-Schnittstelle implementiert oder Blockly.MetricsManager
erweitert.
Ein Beispiel dafür finden Sie im Continuous Toolbox-Plugin oder im Fixed Edges-Plugin.