ブロックのドラッグ戦略は、ブロックによるドラッグの処理方法を決定するオブジェクトです。これらは、ブロックをドラッグ可能にするロジックを実装します。新しいブロック ドラッグ戦略を作成すると、カスタムの選択可能領域の作成や選択の処理を行わずに、ブロックによるドラッグの処理方法を切り替えることができます。
たとえば、通常のドラッグ操作ではなく、ドラッグ操作でブロックを複製したい場合があります。これは、ブロック ドラッグ戦略を使用して実現できます。
ドラッグ戦略のメソッドは、getRelativeToSurfaceXY
メソッド以外は IDraggable
と同じです。
実装
ドラッグ戦略を作成するには、IDragStrategy
インターフェースを実装する必要があります。これには、ブロックがすでに実装している getRelativeToSurfaceXY
メソッドを除き、IDraggable
インターフェースと同じメソッドがすべて必要です。
ドラッグ可能関数を実装する手順に沿ってドラッグ戦略を実装できますが、getRelativeToSurfaceXY()
の実装はスキップします。
使用量
カスタム ドラッグ戦略を使用するには、ブロックの各インスタンスにドラッグ戦略を適用する必要があります。そのためには、ブロックの init
メソッドで setDragStrategy
を呼び出します。
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}