Stratégie de blocage de déplacement

Une stratégie de déplacement de bloc est un objet qui détermine la façon dont un bloc doit gérer les déplacements. Il implémente la logique pour rendre un bloc déplaçable. La création de stratégies de déplacement de blocs vous permet de modifier la façon dont les blocs doivent gérer les déplacements sans avoir à créer un élément sélectionnable personnalisé ni à gérer la sélection.

Par exemple, vous pouvez souhaiter que votre bloc soit dupliqué lors du déplacement plutôt que de le faire glisser normalement. Les stratégies de déplacement par bloc vous permettent de le faire.

Les stratégies de déplacement possèdent les mêmes méthodes qu'un IDraggable, en plus de la méthode getRelativeToSurfaceXY.

Implémentation

Pour créer une stratégie de déplacement, vous devez implémenter l'interface IDragStrategy. Cela nécessite les mêmes méthodes que l'interface IDraggable, à l'exception de la méthode getRelativeToSurfaceXY, que le bloc implémente déjà.

Vous pouvez suivre les instructions pour implémenter un élément déplaçable afin d'implémenter votre stratégie de déplacement, mais ignorer l'implémentation de getRelativeToSurfaceXY().

Utilisation

Pour utiliser une stratégie de déplacement personnalisée, vous devez l'appliquer à chaque instance d'un bloc. Pour ce faire, appelez setDragStrategy dans la méthode init de votre bloc.

Blockly.Blocks['my_block'] = {
  init: function() {
    // Other initialization...
    this.setDragStrategy(new MyDragStrategy());
    // Other initialization...
  }
}