Uma estratégia de arrastar o bloco é um objeto que determina como um bloco vai processar as ações de arrastar. Elas implementam a lógica para transformar um bloco em arrastável. A criação de novas estratégias de arrastar blocos permite alternar como os blocos precisam processar arrastos sem precisar criar um elemento selecionável personalizado ou processar uma seleção.
Por exemplo, você pode querer que o bloco seja duplicado ao arrastar em vez de arrastar normalmente. As estratégias de arrastar para bloquear permitem que você faça isso.
As estratégias de arrastar têm os mesmos métodos de um IDraggable
,
além do método getRelativeToSurfaceXY
.
Implementação
Para criar uma estratégia de arrastar, você precisa implementar a
interface IDragStrategy
. Isso requer os mesmos métodos
da interface IDraggable
, exceto o método getRelativeToSurfaceXY
,
que o bloco já implementa.
Siga as
instruções para implementar um elemento arrastável e
implementar sua estratégia de arrastar, mas pule a implementação de getRelativeToSurfaceXY()
.
Uso
Para usar uma estratégia de arrastar personalizada, aplique a estratégia de arrastar a cada
instância de um bloco. Para fazer isso no método init
do bloco, chame setDragStrategy
.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}