Сериализуемые поля меток

Сериализируемые метки работают точно так же, как и обычные метки, за исключением того, что они также сериализуются в XML. Их следует использовать только в том случае, если вы редактируете содержимое метки программно и хотите, чтобы оно сериализовалось в XML.

Сериализуемое поле метки

Блок с сериализуемой меткой «сериализируемая метка». Визуально это ничем не отличается от блока с обычной меткой.

Сериализуемое поле метки в свернутом блоке

Тот же блок после сворачивания. Он имеет метку «сериализируемая метка» и зубчатый правый край, показывающий, что он свернут.

Создание

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");
  }
};

Поле сериализуемой метки принимает необязательное значение и необязательную строку класса css. Оба значения по умолчанию — пустая строка.

Сериализация

JSON

JSON для сериализуемого поля метки выглядит следующим образом:

{
  "fields": {
    "FIELDNAME": text
  }
}

Где FIELDNAME — это строка, ссылающаяся на сериализуемое поле метки, а значение — это значение, применяемое к полю. Значение следует тем же правилам, что и значение конструктора.

XML

XML для сериализуемого поля метки выглядит следующим образом:

<field name="FIELDNAME">text</field>

Атрибут name узла field содержит строку, ссылающуюся на сериализуемое поле метки, а внутренний текст узла — это значение, применяемое к полю.

Валидаторы

Сериализируемые поля меток не поддерживают валидаторы, поскольку они не могут быть отредактированы пользователем.