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