カスタム ブロック ドラッグ戦略

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

たとえば、ドラッグ時にブロックを重複させるのではなく、 正常にドラッグします。ブロックのドラッグ戦略を使用すると、このことができます。

ドラッグ戦略には、getRelativeToSurfaceXY メソッドを除き、IDraggable と同じメソッドがすべてあります。

実装

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

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

用途

カスタムのドラッグ戦略を使用するには、ブロックの各インスタンスにドラッグ戦略を適用する必要があります。これを行うには、ブロックの init メソッドで次のようにします。 setDragStrategy を呼び出しています。

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