Strategie personalizzate di trascinamento dei blocchi

Una strategia di trascinamento a blocchi è un oggetto che determina la modalità di gestione di un blocco trascinamenti. Implementazione della logica per rendere un blocco trascinabile. La creazione di nuove strategie di trascinamento dei blocchi ti consente di cambiare il modo in cui i blocchi devono gestire i trascinamenti senza dover creare un elemento selezionabile personalizzato o gestire la selezione.

Ad esempio, potresti voler creare un blocco duplicato durante il trascinamento, anziché trascinandolo normalmente. Le strategie di trascinamento dei blocchi ti consentono di farlo.

Le strategie di trascinamento hanno gli stessi metodi di una IDraggable, oltre al metodo getRelativeToSurfaceXY.

Implementazione

Per creare una strategia di trascinamento, devi implementare il metodo IDragStrategy. Questa operazione richiede gli stessi metodi come l'interfaccia IDraggable, tranne che per il metodo getRelativeToSurfaceXY, che il blocco implementa già.

Puoi seguire istruzioni per implementare un elemento trascinabile in implementare la strategia di trascinamento, ma saltando l'implementazione di getRelativeToSurfaceXY().

Utilizzo

Per utilizzare una strategia di trascinamento personalizzata, devi applicarla a ogni istanza di un blocco. Puoi farlo nel metodo di blocco init, ad esempio: chiamata setDragStrategy.

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