Una strategia di trascinamento dei blocchi è un oggetto che determina la modalità di gestione di un blocco. che implementano la logica per rendere un blocco trascinabile. La creazione di nuove strategie di trascinamento dei blocchi consente di cambiare la modalità di gestione dei blocchi senza dover creare una selezione personalizzata o selezionabile.
Ad esempio, è preferibile che il blocco venga duplicato con il trascinamento, anziché trascinarlo normalmente. Le strategie di blocco del trascinamento ti consentono di farlo.
Le strategie di trascinamento hanno gli stessi metodi di una IDraggable
,
a parte il metodo getRelativeToSurfaceXY
.
Implementazione
Per creare una strategia di trascinamento, devi implementare l'interfaccia IDragStrategy
. Ciò richiede gli stessi metodi dell'interfaccia IDraggable
, ad eccezione del metodo getRelativeToSurfaceXY
, che il blocco già implementa.
Puoi seguire le istruzioni per l'implementazione di un elemento trascinabile per implementare la tua strategia di trascinamento, ma salta l'implementazione di getRelativeToSurfaceXY()
.
Utilizzo
Per utilizzare una strategia di trascinamento personalizzata, devi applicarla a ogni istanza di un blocco. Puoi farlo nel metodo init
del blocco, chiamando setDragStrategy
.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}