Vorhandenes Feld erweitern
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Um ein vorhandenes Feld zu erweitern, müssen Sie eine Unterklasse eines integrierten Felds (z. B.
FieldTextInput
, FieldColour
) und passen Sie dann einen Teil an Ihre Bedürfnisse an.
Sie können folgende Bereiche eines Felds ändern:
Wenn Sie ein
benutzerdefiniertes Feld
die kein Verhalten aus einem integrierten Feld benötigt, sollten Sie Field
ableiten.
Gängige Erweiterungen
Die meisten benutzerdefinierten Felder umfassen einen dieser drei Typen:
- Texteingabe: Wenn Sie möchten, dass die Nutzer Text in das Feld eingeben können, müssen Sie
FieldTextInput
- Zahl: Wenn Sie eine Nummer speichern möchten, müssen Sie
FieldNumber
erweitern.
- Drop-down: Wenn Sie ein Drop-down-Menü erstellen, aber ein anderes Modell speichern möchten.
als der Standardstring oder das Standard-Bildmodell, sollten Sie
FieldDropdown
erweitern.
- Achtung: Bevor Sie
FieldDropdown
erweitern, prüfen Sie, ob die
Anpassungsoptionen können Ihre Anforderungen nicht erfüllen.
Unter bestimmten Umständen ist es sinnvoll, einen anderen Feldtyp zu erweitern. Für
Beispiel: FieldLabelSerializable
erweitert FieldLabel
.
Abgeleitete Klassen
import * as Blockly from 'blockly';
export class MyCustomTextField extends Blockly.FieldTextInput {
constructor(value, validator, config) {
super(value, validator, config);
}
}
Der Konstruktor für die Unterklasse eines Felds ähnelt dem konstruktor für
ein benutzerdefiniertes Feld. Die Signatur des Unterkonstruktors sollte
mit der Signatur des Super-Konstruktors übereinstimmt.
JSON und Registrierung
Sie sollten das Feld auch einmal registrieren:
Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);
und eine Implementierung von fromJson
in der Klasse bereitstellen, damit sie mit
JSON-Format:
static fromJson(options) {
const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
return new MySubclassName(value);
}
Weitere Informationen zum Registrieren eines Felds finden Sie unter JSON und Registrierung
im Abschnitt Benutzerdefinierte Felder erstellen.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-04-14 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-04-14 (UTC)."],[[["To extend an existing Blockly field, subclass a built-in field like `FieldTextInput` or `FieldColour` and modify its editor, on-block display, or displayed text."],["For custom fields with unique behaviors, subclass the base `Field` class instead of extending an existing field."],["Common field extensions involve customizing text input (`FieldTextInput`), numbers (`FieldNumber`), or dropdowns (`FieldDropdown`) to meet specific needs."],["When subclassing, ensure your constructor matches the super-constructor's signature and register the field with `Blockly.fieldRegistry.register`."],["Implement the `fromJson` method in your custom field class to enable compatibility with the Blockly JSON format for serialization and deserialization."]]],["To extend an existing field, subclass a built-in field like `FieldTextInput` or `FieldColour`, modifying its editor, on-block display, or text. For unique fields, subclass `Field`. Common extensions include `FieldTextInput`, `FieldNumber`, and `FieldDropdown`. Subclass constructors should mirror the super-constructor's signature. Register the field using `Blockly.fieldRegistry.register()` and implement `fromJson` for JSON compatibility. Extending different fields such as `FieldLabelSerializable` is also possible.\n"]]