内部ブロックは、値とステートメント入力に付加されるブロックです。 個々のブロックコード ジェネレータは、内部トークンの連結を処理する必要があります。 コードが正しい場所に追加されます。
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
。これにより、
value ブロックのブロックコード コード ジェネレータを使用して、
ブロックの内側にかっこを追加する」できます。
詳しくは、かっこのドキュメントをご覧ください。 使用できます。
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
コードを連結する
内側ブロックのコード文字列を取得したら、 正しい場所にコードを文字列で入れます。
const code = `some code ${statement} ${value} some more code`;
戻りコード
ブロックの種類が異なれば、コード文字列を異なる形式で返す必要があります。 詳しくは、以下の各ページをご覧ください。