Estratégias personalizadas de arrastar o bloqueio
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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...
}
}
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-25 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-25 UTC."],[],["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"]]