調査アンケート: Blockly のご利用体験についてお聞かせください
アンケートを開始
ブロック ドラッグ戦略
ブロックのドラッグ戦略は、ブロックによるドラッグの処理方法を決定するオブジェクトです。これらは、ブロックをドラッグ可能にするロジックを実装します。新しいブロック ドラッグ戦略を作成すると、カスタムの選択可能領域の作成や選択の処理を行わずに、ブロックによるドラッグの処理方法を切り替えることができます。
たとえば、通常のドラッグ操作ではなく、ドラッグ操作でブロックを複製したい場合があります。これは、ブロック ドラッグ戦略を使用して実現できます。
ドラッグ戦略のメソッドは、getRelativeToSurfaceXY
メソッド以外は IDraggable
と同じです。
実装
ドラッグ戦略を作成するには、IDragStrategy
インターフェースを実装する必要があります。これには、ブロックがすでに実装している getRelativeToSurfaceXY
メソッドを除き、IDraggable
インターフェースと同じメソッドがすべて必要です。
ドラッグ可能関数を実装する手順に沿ってドラッグ戦略を実装できますが、getRelativeToSurfaceXY()
の実装はスキップします。
使用量
カスタム ドラッグ戦略を使用するには、ブロックの各インスタンスにドラッグ戦略を適用する必要があります。そのためには、ブロックの init
メソッドで setDragStrategy
を呼び出します。
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-04-12 UTC。
[null,null,["最終更新日 2024-04-12 UTC。"],[[["Block drag strategies dictate how blocks respond to drag events, offering an alternative to custom selectables."],["By implementing the `IDragStrategy` interface, developers can create custom drag behaviors like block duplication on drag."],["Drag strategies encompass the functionality of `IDraggable`, excluding the `getRelativeToSurfaceXY` method, which is handled internally by the block."],["Applying a custom drag strategy requires using `setDragStrategy` within the block's `init` method to associate the strategy with each block instance."]]],["Block drag strategies dictate how a block behaves during drags, allowing for custom drag behaviors like duplication. Developers implement the `IDragStrategy` interface, which mirrors `IDraggable` methods except for `getRelativeToSurfaceXY`. To apply a custom strategy, use the `setDragStrategy` method within a block's `init` method. This enables switching block drag behavior without altering core selection or drag handling. You must implement all the methods of `IDraggable` in the custom strategy except for `getRelativeToSurfaceXY`.\n"]]