ステートメント ブロックは、出力接続のないブロックです。テキストベースの言語の記述のように機能します。
Blockly のすべてのブロックと同様に、ブロックコード ジェネレータを定義することでステートメント ブロックをコード文字列に変換できます。
import {javascriptGenerator} from 'blockly/javascript';
javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
// Collect argument strings.
const fieldValue = block.getFieldValue('MY_FIELD');
const innerCode = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
// Return code.
return 'my code string';
}
引数の文字列を収集する
すべてのブロックコード ジェネレータでは、フィールドの値を収集し、内部ブロックのコードを収集する必要があります。
// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');
// Collect inner block code strings.
const innerCode = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
内部ブロックのコードを複数回参照する場合は、ブロックに引数のキャッシュを追加する必要があります。
戻り値
ステートメント ブロックコード ジェネレータの戻り値の型はコード文字列です。
return 'my code string';