价值

值块是具有输出连接的块。它们的作用类似于基于文本的语言中的值(也称为表达式)。

与 Blockly 中的所有块一样,值块可以通过定义块代码生成器来转换为代码字符串。

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];
}

收集参数字符串

所有块代码生成器都需要收集字段的值收集内部块的代码

// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');

// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

如果您多次引用内部块的代码,则应向您的块添加参数缓存

返回代码

值块代码生成器的返回值类型是一个数组,其中第一个值是代码字符串,第二个值优先。

return ['my code string', Order.NONE];

优先级用于控制何时在块代码字符串周围添加圆括号。 如需详细了解如何控制何时添加圆括号,请参阅圆括号文档