Estrategias personalizadas de arrastre de bloque
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Una estrategia de arrastre de bloques es un objeto que determina cómo un bloque debe controlar
arrastra. Implementan la lógica para que un bloque sea arrastrable.
Crear nuevas estrategias de arrastre de bloques te permite cambiar la forma en que los bloques deben controlar los arrastres sin tener que crear un elemento seleccionable personalizado o controlar la selección.
Por ejemplo, tal vez prefieras que el bloque se duplique al arrastrar, en lugar de
arrastrando normalmente. Las estrategias de arrastre de bloques 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 todos 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 desplazable para 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...
}
}
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-25 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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"]]