Campos de rótulos serializáveis

Os rótulos serializáveis funcionam exatamente da mesma forma que os rótulos normais, mas também são serializados em XML. Elas só devem ser usadas se você estiver editando o conteúdo de um rótulo de forma programática e quiser que ele seja serializado em XML.

Campo de rótulo serializável

Um bloco com o rótulo serializável "a serializable label". Visualmente, isso não é diferente de um bloco com um rótulo normal.

Campo de marcador serializável em um bloco recolhido

O mesmo bloco depois de ser recolhido. Ele tem o rótulo "a serializable label"
e uma borda direita irregular para mostrar que está
encolhido.

Criação

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

O campo de rótulo serializável recebe um valor opcional e uma string de classe CSS opcional. O padrão é uma string vazia.

Serialização

JSON

O JSON de um campo de rótulo serializável é assim:

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

Em que FIELDNAME é uma string que faz referência a um campo de marcador serializável, e o valor é o valor a ser aplicado ao campo. O valor segue as mesmas regras do valor do construtor.

XML

O XML de um campo de rótulo serializável fica assim:

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

O atributo name do nó field contém uma string que faz referência a um campo de rótulo serializável, e o texto interno do nó é o valor a ser aplicado ao campo.

Validadores

Os campos de rótulo serializáveis não são compatíveis com validadores porque não podem ser editados por um usuário.