Stratégies personnalisées de déplacement des blocs

Une stratégie de glisser-déposer de bloc est un objet qui détermine comment un bloc doit gérer les glisser-déposer. Ils implémentent la logique pour faire d'un bloc un élément déplaçable. Créer de nouvelles stratégies de déplacement des blocs vous permet de modifier la façon dont les blocs doivent être gérés sans avoir à créer un élément sélectionnable personnalisé ni à gérer de votre choix.

Par exemple, vous pouvez choisir de dupliquer le bloc lors d'un déplacement, en faisant glisser normalement. C'est possible grâce aux stratégies de déplacement de blocs.

Les stratégies de déplacement utilisent les mêmes méthodes qu'une IDraggable, en plus de la méthode getRelativeToSurfaceXY.

Implémentation

Pour créer une stratégie de glisser-déposer, vous devez implémenter l'interface IDragStrategy. Cela nécessite toutes 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 vers implémentez votre stratégie de déplacement, mais ignorez 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, dans la méthode init de votre bloc, procédez comme suit : Appel de setDragStrategy en cours.

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