Der Messwertmanager

Der Messwertmanager erfasst und meldet alle Messwerte, die zum Blockly-Arbeitsbereich gehören. In diesem Leitfaden wird die Bedeutung der einzelnen Messwerte beschrieben, die vom Messwertmanager zurückgegeben werden. Weitere Informationen zum Metrics Manager finden Sie auch in der Messwerte 2021 im Detail.

Messwerte

Toolbox-Messwerte

workspace.getMetricsManager().getToolboxMetrics();

Die Toolbox-Messwerte setzen sich aus den height, width und position einer Kategorie-Toolbox zusammen. Dies umfasst keine Informationen über das Flyout, das an der Toolbox befestigt ist.

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

Der position der Toolbox hat den Typ Blockly.utils.toolbox.Position.

Flyout-Messwerte

workspace.getMetricsManager().getFlyoutMetrics();

Die Flyout-Messwerte bestehen aus den height, width und position einer Flyout-Toolbox. Dabei ist zu beachten, dass dies nicht das Flyout-Element ist, das mit der Kategorie-Toolbox verbunden ist. Dies gilt nur für Flyout-Toolboxen, wie im folgenden Foto gezeigt.

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

Die position des Flyouts ist vom Typ Blockly.utils.toolbox.Position.

SVG-Messwerte

workspace.getMetricsManager().getSvgMetrics();

Die SVG-Messwerte bestehen aus den width und height des übergeordneten SVG-Elements des Arbeitsbereichs. Für den Hauptarbeitsbereich ist dies die SVG-Datei mit der Klasse blocklySvg. Dieses SVG enthält den sichtbaren Arbeitsbereich und die Toolbox.

Der Blockly-Arbeitsbereich mit einem blauen Rechteck darum.

Messwerte ansehen

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

Die Ansichtsmesswerte setzen sich aus height, width, top und left des Darstellungsbereichs zusammen. Der Darstellungsbereich ist der Teil des Arbeitsbereichs, der sichtbar ist. Beide Arten von Toolboxen sind nicht enthalten.

Der Blockly-Arbeitsbereich mit einem blauen Rechteck um den Bereich ohne Toolbox.

Der Wert oben links bezieht sich auf den Ursprung des Arbeitsbereichs. Wenn wir den Arbeitsbereich verschieben, wird die obere und linke Position des Darstellungsbereichs aktualisiert.

Der Arbeitsbereich Blockly mit einem blauen Rechteck um den Bereich ohne Toolbox und einem Ursprung, der von der oberen linken Ecke entfernt angezeigt wird.

Absolute Messwerte

workspace.getMetricsManager().getAbsoluteMetrics();

Die absoluten Messwerte setzen sich aus dem top- und left-Versatz des Darstellungsbereichs gegenüber der begleitenden SVG zusammen. Je nachdem, wo sich die Toolbox im Arbeitsbereich befindet, ist das normalerweise die Breite oder Höhe der Toolbox.

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

Content-Messdaten

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

Die Inhaltsmesswerte bestehen aus height, width, top und left des Begrenzungsrahmens um alle Blöcke oder Arbeitsbereichskommentare.

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

Scrollmesswerte

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

Die Scrollmesswerte setzen sich aus height, width, top und left des scrollbaren Bereichs zusammen. Bei einem verschiebbaren Arbeitsbereich ist der scrollbare Bereich der Inhaltsbereich mit einem gewissen Abstand.

Der Blockly-Arbeitsbereich, der von einem großen blauen Rahmen umgeben ist.

Koordinatensysteme

Standardmäßig werden alle vom Metrics Manager berechneten Messwerte als Pixelkoordinaten zurückgegeben. Gegebenenfalls besteht die Möglichkeit, bestimmte Messwerte in Arbeitsbereichskoordinaten abzurufen. Dazu übergeben Sie true an die Messwertmethoden. Beispiel: metricsManager.getViewMetrics(true)

workspaceCoordinate = pixelCoordinates / workspace.scale

Arbeitsbereichskoordinaten werden im Allgemeinen für Elemente verwendet, die sich auf dem Arbeitsbereich befinden, z. B. für Blöcke und Kommentare im Arbeitsbereich. Die Koordinaten des Arbeitsbereichs ändern sich nicht, wenn Nutzende heran- und herauszoomen.

Messwerte überschreiben

Entwickler, die ihre eigenen Messwerte für den Arbeitsbereich bereitstellen möchten, können ein Ersatzobjekt für das Messwertmanager registrieren, das die IMetricsManager-Schnittstelle implementiert oder Blockly.MetricsManager erweitert.

Ein Beispiel dafür finden Sie im Plug-in "Continuous Toolbox" oder im Plug-in "Fixed Edges".