Estratégia de arrastar para blocos

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...
  }
}