字段

字段是代码生成过程的重要组成部分,因为它们定义了 用户可修改的值,如字符串、数字和颜色等。

在生成的代码中添加字段值涉及获取字段的值, 再将该字符串转换成可用的字符串,然后将该字符串与 代码。

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Get the field value.
  const fieldValue = block.getFieldValue('MY_FIELD');

  // Concatenate the code.
  const code = `some code ${fieldValue} some more code`;

  // Return the code.
  return code;
}

获取值

您可以使用 getFieldValue 访问字段值。什么会获得 所返回的值因字段而异,因此您应该检查内置 字段文档,了解有关特定字段的信息。对于 例如,文本输入字段会返回用户输入的确切文本, 字段会返回与用户商品相关联的中性语言字符串 已选择。

转换值

大多数字段值都可以立即串联到您的代码字符串中。 不过,某些字段值需要执行额外的操作才能使用。

字符串

代码生成器需要先对字符串进行引用,然后才能进行串联。

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

变量

变量名称需要先由代码生成器进行清理,然后才能 串联在一起。这是必要的,原因有两个:

  1. 变量由用户以自己选择的语言输入。也就是说, 可能需要转换为 ASCII 字符。例如:متغير会 将转换为“_D9_85_D8_AA_D8_BA_D9_8A_D8_B1”。
  2. 变量可能与保留字冲突。这意味着它们可能需要 因此它们不会发生冲突例如:for将转换为 “for2”。
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

串联代码

获取字段的值并将其转换为字符串后,您就可以 将其与代码字符串的正确位置串联起来。

const code = `some code ${value} some more code`;

返回代码

不同类型的代码块需要以不同的 因此请查看其各自的网页以了解详情: