Wertblöcke sind Blöcke mit Ausgabeverbindungen. Diese verhalten sich wie Werte (auch Ausdrücke) in einer textbasierten Sprache verfasst werden.
Genau wie alle Blöcke in Blockly können Wertblöcke in Codestrings umgewandelt werden, indem der Definition eines Blockcode-Generators.
import {javascriptGenerator, Order} from 'blockly/javascript';
javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
// Collect argument strings.
const fieldValue = block.getFieldValue('MY_FIELD');
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
// Return code.
return ['my code string', Order.NONE];
}
Argumentstrings erfassen
Alle Blockcode-Generatoren müssen die Erfassung der Werte von Feldern und Erfassung des Codes von inneren Blöcken.
// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');
// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
Wenn Sie mehrmals auf den Code eines inneren Blocks verweisen, sollten Sie Argument-Caching in Ihrem Block.
Rückgabecode
Der Rückgabetyp eines Wertblockcode-Generators ist ein Array, bei dem die erste "value" ist ein Codestring und der zweite Wert hat eine Priorität.
return ['my code string', Order.NONE];
Die Rangfolge wird gesteuert, wenn Blockcode-Strings in Klammern gesetzt werden. Weitere Informationen finden Sie in der Dokumentation zu Klammern. wie das Hinzufügen von Klammern gesteuert wird.