blockly > blockRendering > RenderInfo

blockRendering.RenderInfo-Klasse

Ein Objekt, das alle Größeninformationen enthält, die zum Zeichnen dieses Blocks erforderlich sind.

Diese Messungskarte überträgt keine Änderungen am Block (obwohl Felder beim Aufruf von getSize() neu gerendert werden können). Wiederholtes Aufrufen kann jedoch teuer sein.

Unterschrift:

export declare class RenderInfo 

Konstruktoren

Konstruktor Modifikatoren Beschreibung
(Konstruktor)(Renderer, Blockierung) Erstellt eine neue Instanz der RenderInfo-Klasse

Attribute

Property Modifikatoren Typ Beschreibung
block_ BlockSvg
bottomRow BottomRow
constants_ protected ConstantProvider
height Zahl Höhe des gerenderten Blocks, einschließlich der untergeordneten Blöcke.
inputRows InputRow[] Ein Array von Eingabezeilen im Block.
isCollapsed boolean
isInline boolean
isInsertionMarker boolean
outputConnection OutputConnection | null
renderer_

protected

readonly

Renderer Verwendeter Block-Renderer
Zeilen Zeile[] Ein Array von Row-Objekten, die Größeninformationen enthalten.
RTL boolean
startX Zahl
startY Zahl
statementEdge Zahl
topRow TopRow
Breite Zahl Die Breite des gerenderten Blocks ohne untergeordnete Blöcke. Dies ist der rechte Rand des Blocks beim Rendern im LTR.
widthWithChildren Zahl Breite des gerenderten Blocks, einschließlich untergeordneter Blöcke.

Methoden

Methode Modifikatoren Beschreibung
addAlignmentPadding_(row, missingSpace) protected Ändern Sie die gegebene Zeile so, dass die Felder der Zeile entsprechend aufgefüllt werden. Die genaue Position des Abstands basiert auf der Ausrichtungseigenschaft der letzten Eingabe im Feld.
addElemSpacing_() protected Fügen Sie horizontale Abstände zwischen Elementen in jeder Zeile hinzu.
addInput_(input, ActiveRow) protected Fügen Sie der aktiven Zeile bei Bedarf ein Eingabeelement hinzu und notieren Sie die Art der Eingabe in der Zeile.
addRowSpacing_() protected Fügen Sie Abstandshalter zwischen den Zeilen ein und legen Sie ihre Größe fest.
alignRowElements_() protected Möglicherweise sind zusätzliche Abstände erforderlich, damit die rechten Seiten aller Zeilen aufeinander ausgerichtet sind. Sie kann nur nach dem ersten Durchlauf berechnet werden, um die Größen aller Zeilen zu berechnen.
alignStatementRow_(row) protected Richtet die Elemente einer Anweisungszeile anhand der berechneten Grenzen aus. Im Gegensatz zu anderen Zeilentypen fügen Anweisungszeilen an mehreren Stellen Platz ein.
computeBounds_() protected Ermitteln Sie, wo der rechte Block des Blocks und der rechte Rand der Anweisungseingaben platziert werden sollen.
createRows_() protected Erstellen Sie Zeilen mit messbaren Objekten, die alle renderbaren Teile des Blocks darstellen.
finalize_() protected Nehmen Sie die letzten Änderungen am Rendering-Informationsobjekt vor. Speichern Sie insbesondere die y-Position jeder Zeile und erfassen Sie die Höhe des vollständigen Blocks.
getDesiredRowWidth_(_row) protected Berechnen Sie die gewünschte Breite einer Eingabezeile.
getElemCenterline_(row, elem) protected Berechnet die Mittellinie eines Elements in einer gerenderten Zeile. Bei dieser Basisimplementierung wird die Mittellinie ohne Sonderfälle vertikal in der Mitte der Zeile platziert. Sie benötigen wahrscheinlich zusätzliche Logik, um (mindestens) die oberen und unteren Zeilen zu verarbeiten.
getInRowSpacing_(prev, next) protected Berechnen Sie die Breite eines Abstandselements in einer Zeile basierend auf den vorherigen und nächsten Elementen in dieser Zeile. Zum Beispiel wird ein zusätzlicher Abstand zwischen zwei bearbeitbaren Feldern hinzugefügt.
getMeasureableForConnection(conn) Gibt die mit der angegebenen Verbindung messbare Verbindung zurück.
getRenderer() Block-Renderer in Verwendung abrufen
getSpacerRowHeight_(_prev, _next) protected Berechne die Höhe eines Abstandshalters.
getSpacerRowWidth_(_prev, _next) protected Berechnen Sie die Breite eines Abstandshalters.
makeSpacerRow_(vorherige, weiter) protected Erstellen Sie eine Abstandszeile, um zwischen der vorherigen und der nächsten zu wechseln, und legen Sie ihre Größe fest.
measure()

Füllen Sie dieses Objekt mit allen Größeninformationen, die zum Zeichnen des Blocks erforderlich sind.

Diese Messungskarte überträgt keine Änderungen am Block (obwohl Felder beim Aufruf von getSize() neu gerendert werden können). Wiederholtes Aufrufen kann jedoch teuer sein.

populateBottomRow_() protected Erstellen Sie alle Elemente ohne Abstand, die zur untersten Zeile gehören.
populateTopRow_() protected Erstellen Sie alle Elemente ohne Abstand, die zur obersten Zeile gehören.
recordElemPositions_(row) protected Zeichnen Sie die endgültigen Positionsinformationen der Elemente in der jeweiligen Zeile zur Zeichnung auf. Dadurch werden bei jedem Element mindestens xPos und die Mittellinie erfasst.
shouldStartNewRow_(currInput, prevInput) protected Entscheiden Sie, ob eine neue Zeile zwischen den beiden Blockly.Inputs beginnen soll.