Messwertmanager

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.

Der Blockly-Arbeitsbereich mit Pfeilen, die die Breite und Höhe der Toolbox zeigen.

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.

Der Blockly-Arbeitsbereich mit Pfeilen, die die Breite und Höhe des Flyouts zeigen.

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.

Der Blockly-Arbeitsbereich mit einem blauen Rechteck darum.

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.

Der Blockly-Arbeitsbereich mit einem blauen Rechteck um den Bereich, der nicht die Toolbox enthält.

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.

Der Blockly-Arbeitsbereich mit einem blauen Rechteck um den Bereich ohne die Toolbox und einem Ursprung, der von der oberen linken Ecke versetzt ist.

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.

Der Blockly-Arbeitsbereich mit einer blauen Linie rechts neben der Toolbox und oben im Arbeitsbereich. Der Blockly-Arbeitsbereich mit einer horizontalen Toolbox. Links neben dem Arbeitsbereich und unter der Toolbox befindet sich eine blaue Linie.

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.

Der Blockly-Arbeitsbereich mit einem blauen Rahmen um den Inhalt des Arbeitsbereichs.

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.

Der Blockly-Arbeitsbereich mit einem großen blauen Rahmen.

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.