內部區塊

內部區塊是附加至值和陳述式輸入內容的區塊。個別區塊程式碼產生器必須處理其內部區塊的串連,以便將程式碼新增至正確的位置。

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Generate innner block code.
  const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
  const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Concatenate the string.
  const code = `some code ${statement} ${value} some more code`;

  // Return the code.
  return code;
}

陳述式輸入值

附加至陳述式輸入的內部區塊程式碼可使用 statementToCode 產生。這會呼叫陳述式區塊的區塊程式碼產生器,並處理縮排程式碼。

const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

您只需針對直接連結至陳述式輸入的內部區塊呼叫 statementToCode 即可。

輸入的值

附加至值輸入的內部區塊程式碼可使用 valueTocode 產生。這會呼叫值區塊的區塊程式碼產生器,並視需要處理內部區塊程式碼前後的括號。

如要進一步瞭解如何控制括號,請參閱括號說明文件

const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

串連程式碼

取得內部區塊的程式碼字串後,即可利用程式碼字串將其串連在正確的位置。

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

傳回碼

不同類型的區塊需要以不同方式傳回程式碼字串,請查看個別頁面瞭解詳情: