ブロック ドラッグ戦略

ブロックのドラッグ戦略は、ブロックによるドラッグの処理方法を決定するオブジェクトです。これらは、ブロックをドラッグ可能にするロジックを実装します。新しいブロック ドラッグ戦略を作成すると、カスタムの選択可能領域の作成や選択の処理を行わずに、ブロックによるドラッグの処理方法を切り替えることができます。

たとえば、通常のドラッグ操作ではなく、ドラッグ操作でブロックを複製したい場合があります。これは、ブロック ドラッグ戦略を使用して実現できます。

ドラッグ戦略のメソッドは、getRelativeToSurfaceXY メソッド以外は IDraggable と同じです。

実装

ドラッグ戦略を作成するには、IDragStrategy インターフェースを実装する必要があります。これには、ブロックがすでに実装している getRelativeToSurfaceXY メソッドを除き、IDraggable インターフェースと同じメソッドがすべて必要です。

ドラッグ可能関数を実装する手順に沿ってドラッグ戦略を実装できますが、getRelativeToSurfaceXY() の実装はスキップします。

使用量

カスタム ドラッグ戦略を使用するには、ブロックの各インスタンスにドラッグ戦略を適用する必要があります。そのためには、ブロックの init メソッドで setDragStrategy を呼び出します。

Blockly.Blocks['my_block'] = {
  init: function() {
    // Other initialization...
    this.setDragStrategy(new MyDragStrategy());
    // Other initialization...
  }
}