內部區塊是附加至值和陳述式輸入內容的區塊。個別區塊程式碼產生器必須處理其內部區塊的串連,以便將程式碼新增至正確的位置。
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`;
傳回碼
不同類型的區塊需要以不同方式傳回程式碼字串,請查看個別頁面瞭解詳情: