Стратегия перетаскивания блока — это объект, который определяет, как блок должен обрабатывать перетаскивание. Они реализуют логику, позволяющую сделать блок перетаскиваемым . Создание новых стратегий перетаскивания блоков позволяет вам переключать способ обработки перетаскивания блоков без необходимости создания пользовательского выбора или обработки выбора.
Например, вы можете захотеть, чтобы ваш блок дублировался при перетаскивании, а не при обычном перетаскивании. Стратегии перетаскивания блоков позволяют вам это сделать.
Стратегии перетаскивания имеют все те же методы, что и IDraggable , за исключением метода getRelativeToSurfaceXY .
Выполнение
Чтобы создать стратегию перетаскивания, вам необходимо реализовать интерфейс IDragStrategy . Для этого требуются все те же методы, что и в интерфейсе IDraggable , за исключением метода getRelativeToSurfaceXY , который уже реализован в блоке.
Вы можете следовать инструкциям по реализации перетаскиваемого объекта для реализации своей стратегии перетаскивания, но пропустите реализацию getRelativeToSurfaceXY() .
Использование
Чтобы использовать собственную стратегию перетаскивания, вам необходимо применить ее к каждому экземпляру блока. Вы можете сделать это в методе init вашего блока, вызвав setDragStrategy .
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}