Campos de rótulos serializáveis

Os rótulos serializáveis funcionam exatamente da mesma forma que os rótulos normais exceto que também serializam para XML. Elas só devem ser usadas se você estiver editando o conteúdo de um rótulo de maneira programática e quer que ele seja serializado para XML.

Campo de rótulo serializável

Campo de rótulo serializável em um bloco recolhido

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 um CSS opcional string de classe. As duas assumem como padrão uma string vazia.

Serialização

JSON

O JSON para um campo de rótulo serializável tem esta aparência:

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

Em que FIELDNAME é uma string que faz referência a um campo de rótulo 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 para um campo de rótulo serializável tem a seguinte aparência:

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

O atributo name do nó field contém uma string que faz referência a um label e o texto interno do nó é o valor a ser aplicado ao campo.

Validadores

Os campos de rótulos serializáveis não são compatíveis com validadores, porque eles não são editáveis por um usuário.