コンピュータ サイエンス用語では、プロシージャとは特定のタスクを実行するために再利用可能なコードのことです。
Blockly は、プロシージャを定義して呼び出すコードを生成するブロックのセットとしてプロシージャを実装します。
→ ブロックの使用に関する詳細
→ カスタム プロシージャ ブロックの作成に関する詳細
→ カスタム プロシージャ モデルの作成で詳細をご確認ください。型付きパラメータなどの新機能を追加できます。
組み込みとプラグイン
Blockly には、プロシージャ ブロックの 2 つの実装があります。
1 つはプラグイン @blockly/block-shareable-procedures に存在し、バッキング データモデルに依存するプロシージャ ブロックを実装します。これにより、あるワークスペースに定義ブロックが存在し、別のワークスペースに call ブロックが存在するといった、プロシージャ ブロックを使った処理が可能になります。このプラグインは、プロシージャ ブロックの推奨実装です。
もう一つは、Blockly コアで提供される従来の実装です。これらのブロックにはバッキング データモデルがなく、プロシージャに関するすべての情報はブロック自体から取得されます。ワークスペースが使用可能なプロシージャを把握する唯一の方法は、そのワークスペースに含まれるプロシージャ定義ブロックを調べることです。これらのブロックは下位互換性のために引き続きサポートされますが、ほとんどのデベロッパーはプラグインから提供される新しいブロックを使用できます。
XML シリアル化を使用している場合は、新しいブロックを使用できますが、ワークスペース間で共有することはできません。この機能には、JSON シリアライザによってのみ提供される追加のシリアル化が必要です。XML を使用する場合、新しいブロックは以前のブロックと同じように動作します。JSON へのアップグレードに関する詳細
カスタム プロシージャ ブロックを定義してある場合は、新しいデータモデルで動作するように更新する必要があります。
カスタム プロシージャ定義ブロックをすでに定義していて、組み込みのプロシージャ コール ブロックを使用している場合は、定義ブロックを更新するまで、以前の呼び出し元ブロックを引き続き使用する必要があります。