欄位

欄位是產生程式碼的重要部分,因為 例如字串、數字和顏色 (等等)。

如要在產生的程式碼中加入欄位值,就必須取得欄位值, 將其轉換為可用的字串,然後使用 其餘部分

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`;

傳回碼

不同類型的區塊需要在不同的區塊中傳回程式碼字串 因此,建議您個別查看他們的網頁瞭解詳情: