Uma estratégia de arrasto de bloco é um objeto que determina como um bloco precisa processar arrastar. Eles implementam a lógica para tornar um bloco um arrastável. A criação de novas estratégias de arrasto de bloco permite mudar a forma como os blocos precisam processar arrastar sem precisar lidar com a criação de um selecionável personalizado ou processar a seleção.
Por exemplo, talvez você queira que o bloco seja duplicado ao arrastar, em vez de ser arrastado normalmente. As estratégias de arrastar com blocos permitem que você faça isso.
As estratégias de arrasto têm todos os mesmos métodos de uma IDraggable
,
além do método getRelativeToSurfaceXY
.
Implementação
Para criar uma estratégia de arrastar, você precisa implementar a
IDragStrategy
. Isso requer os mesmos métodos
que a interface IDraggable
, exceto pelo método getRelativeToSurfaceXY
,
que o bloco já implementa.
Você pode seguir
instruções para implementar um elemento arrastável para
implementar sua estratégia de arrastar, mas pule a implementação de getRelativeToSurfaceXY()
.
Uso
Para usar uma estratégia de arrastar personalizada, você precisa aplicá-la a cada
instance de um bloco. É possível fazer isso no método init
do bloco,
chamando setDragStrategy
.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}