可序列化标签字段

可序列化标签的运作方式与普通标签完全相同,只不过它们还会序列化为 XML。只有在以编程方式修改标签内容并希望将其序列化为 XML 时,才应使用这些方法。

可序列化标签字段

一个带有可序列化标签“a serializable label”的代码块。从视觉上看,这与带有正常标签的块没有什么不同。

收起的代码块上的可序列化标签字段

收起后的同一代码块。它带有“可序列化标签”标签,并且右边缘锯齿状,表示其处于收起状态。

创建

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>

field 节点的 name 属性包含一个引用可序列化标签字段的字符串,并且节点的内部文本是应用于该字段的值。

验证器

可序列化标签字段不支持验证器,因为用户无法对其进行修改。