In einem Variablenfeld wird ein String als Wert und ein String als Text gespeichert. Die "value" ist die ID einer Variablen, während der Text der Name einer Variablen ist.
Variablenfeld
Variablenfeld mit geöffnetem Editor
Variablenfeld in minimiertem Block
Erstellung
Nicht eingegeben
JSON
{
"type": "example_variable_untyped",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x"
}
]
}
JavaScript
Blockly.Blocks['example_variable_untyped'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable('x'), 'FIELDNAME');
}
};
Eingegeben
JSON
{
"type": "example_variable_typed",
"message0": "variable: %1",
"args0": [
{
"type": "field_variable",
"name": "FIELDNAME",
"variable": "x",
"variableTypes": ["Number", "String"],
"defaultType": "Number"
}
]
}
JavaScript
Blockly.Blocks['example_variable_typed'] = {
init: function() {
this.appendDummyInput()
.appendField('variable:')
.appendField(new Blockly.FieldVariable(
'X',
null,
['Number', 'String'],
'Number'
), 'FIELDNAME');
}
};
Der Variablenkonstruktor übernimmt einen optionalen Variablennamen, ein optionales Feld validator, ein optionales Array von Variablen -Typen und einen optionalen Standardtyp.
- Der Variablenname sollte ein String sein. Dies ist der Name des die das Feld enthält. Wenn er null ist oder nicht definiert ist, gilt ein eindeutiger Name. generiert.
- Die Variablentypen sollten ein Array von Strings sein. Dadurch weiß das Feld, welche Variablentypen das Feld enthalten kann (d.h. welche Variablentypen hinzufügen). Wenn der Wert null oder nicht definiert ist, akzeptiert und dem Drop-down-Menü hinzugefügt werden.
- Der Standardtyp sollte ein String sein. Diese wird bei der Erstellung des das anfängliche Variablenmodell des Felds. Wenn dies definiert ist, sollte es enthalten sein. im Variablentypen-Array. Wenn er null ist oder nicht definiert ist, wird dieser Wert standardmäßig festgelegt. in einen leeren String, d. h., die ursprüngliche Variable wird flexibel eingegeben.
→ Weitere Informationen zur strikten Eingabe finden Sie unter Typprüfungen.
Serialisierung
JSON
Der JSON-Code für ein Variablenfeld sieht so aus:
{
"fields": {
"FIELDNAME": {
"id": "QJD^+@[RVIwbLSZoDb:V"
}
}
}
Dabei ist FIELDNAME
ein String, der auf ein Variablenfeld verweist, und
Der Wert ist die ID der Variablen, auf die das Feld verweist.
Wenn Sie dieses Feld in der Toolbox verwenden, können Sie auch den Namen und (optional) eingeben, da keine Variable zur Verfügung steht, Referenz.
{
"fields": {
"FIELDNAME": {
"name": "my_variable",
"type": "string"
}
}
}
XML
Der XML-Code für ein Variablenfeld sieht so aus:
<field name="VARIABLE" id="QJD^+@[RVIwbLSZoDb:V" variabletype="">name</field>
- Das Attribut
name
des Knotens enthält einen String, der auf ein Variablenfeld verweist. - Das Attribut
id
des Knotens enthält die ID der Variablen, die im Feld verwendet wird Referenzen. - Das Attribut
variabletype
des Knotens enthält den Typ der Variablen. Die Fürvariabletype
gelten dieselben Regeln wie für den Standardtypparameter des Konstruktors. - Der innere Text des Knotens ist der Name der Variable. Der innere Textwert folgt denselben Regeln wie der Variablennamenparameter des Konstruktors.
Variablenvalidierung erstellen
Der Wert eines Variablenfelds ist ein String. Daher müssen alle Validatoren einen String und
gibt einen String, null
oder undefined
zurück.
Hier ist ein Beispiel für eine Validierung, die nur einige Optionen. Diese Variablen müssten mit dem Parameter Workspace.createVariable wenn der Arbeitsbereich geladen wird.
function(newValue) {
var validIds = ['Worf', 'Riker', 'Picard'];
if (validIds.indexOf(newValue) == -1) {
return null;
}
return newValue;
}