Стратегия перетаскивания блоков

Стратегия перетаскивания блока — это объект, который определяет, как блок должен обрабатывать перетаскивание. Они реализуют логику, позволяющую сделать блок перетаскиваемым . Создание новых стратегий перетаскивания блоков позволяет вам переключать способ обработки перетаскивания блоков без необходимости создания пользовательского выбора или обработки выбора.

Например, вы можете захотеть, чтобы ваш блок дублировался при перетаскивании, а не при обычном перетаскивании. Стратегии перетаскивания блоков позволяют вам это сделать.

Стратегии перетаскивания имеют все те же методы, что и IDraggable , за исключением метода getRelativeToSurfaceXY .

Выполнение

Чтобы создать стратегию перетаскивания, вам необходимо реализовать интерфейс IDragStrategy . Для этого требуются все те же методы, что и в интерфейсе IDraggable , за исключением метода getRelativeToSurfaceXY , который уже реализован в блоке.

Вы можете следовать инструкциям по реализации перетаскиваемого объекта для реализации своей стратегии перетаскивания, но пропустите реализацию getRelativeToSurfaceXY() .

Использование

Чтобы использовать собственную стратегию перетаскивания, вам необходимо применить ее к каждому экземпляру блока. Вы можете сделать это в методе init вашего блока, вызвав setDragStrategy .

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