Serisierbare Labels funktionieren genau wie normale Labels, mit der Ausnahme, dass sie auch in XML serialisiert werden. Sie sollten nur verwendet werden, wenn Sie den Inhalt eines Labels programmatisch bearbeiten und in XML serialisieren möchten.
Serialisierbares Labelfeld
Serielles Labelfeld in einem minimierten Block
Erstellung
JSON
{
"type": "example_serializable_label",
"message0": "%1",
"args0": [
{
"type": "field_label_serializable",
"name": "FIELDNAME",
"text": "a serializable label"
}
]
}
JavaScript
Blockly.Blocks['example_serializable_label'] = {
init: function() {
this.appendDummyInput()
.appendField(new Blockly.FieldLabelSerializable("a serializable label"), "FIELDNAME");
}
};
Das serialisierbare Labelfeld nimmt einen optionalen Wert und einen optionalen CSS-Klassenstring an. Beide sind standardmäßig auf einen leeren String eingestellt.
Serialisierung
JSON
Das JSON für ein serialisierbares Labelfeld sieht so aus:
{
"fields": {
"FIELDNAME": text
}
}
Dabei ist FIELDNAME
ein String, der auf ein serialisierbares Labelfeld verweist, und „Wert“ ist der Wert, der auf das Feld angewendet werden soll. Für den Wert gelten dieselben Regeln wie für den Konstruktorwert.
XML
Das XML für ein serialisierbares Labelfeld sieht so aus:
<field name="FIELDNAME">text</field>
Das Attribut name
des Knotens field
enthält einen String, der auf ein serialisierbares Labelfeld verweist. Der innere Text des Knotens ist der Wert, der auf das Feld angewendet werden soll.
Validatoren
Für serialisierbare Labelfelder werden keine Validator unterstützt, da sie von Nutzern nicht bearbeitet werden können.