Serialisierbare Labelfelder

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

Ein Block mit dem serialisierbaren Label „a serializable label“. Visuell unterscheidet sich das nicht von einem Block mit einem normalen Label.

Serielles Labelfeld in einem minimierten Block

Derselbe Block nach dem Minimieren. Es trägt das Label „a serializable label“ (ein serialisierbares Label) und hat eine gezackte rechte Kante, um anzuzeigen, dass es minimiert ist.

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.