Una estrategia de arrastre de bloque es un objeto que determina cómo un bloque debe controlar los arrastres. Implementan la lógica para hacer que un bloque sea arrastrable. La creación de nuevas estrategias de arrastre de bloque te permite cambiar la forma en que los bloques deben controlar los arrastres sin tener que crear una selección personalizada o controlar la selección.
Por ejemplo, es posible que quieras que tu bloque se duplique al arrastrar, en lugar de arrastrar normalmente. Las estrategias de arrastre en bloque te permiten hacerlo.
Las estrategias de arrastre tienen los mismos métodos que un IDraggable
, además del método getRelativeToSurfaceXY
.
Implementación
Para crear una estrategia de arrastre, debes implementar la interfaz IDragStrategy
. Esto requiere los mismos métodos que la interfaz IDraggable
, excepto el método getRelativeToSurfaceXY
, que el bloque ya implementa.
Puedes seguir las instrucciones para implementar un elemento arrastrable a fin de implementar tu estrategia de arrastre, pero omite la implementación de getRelativeToSurfaceXY()
.
Uso
Para usar una estrategia de arrastre personalizada, debes aplicarla a cada instancia de un bloque. Puedes hacerlo en el método init
de tu bloque llamando a setDragStrategy
.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}