Drag-and-drop-Strategie blockieren

Eine Blockziehstrategie ist ein Objekt, das festlegt, wie ein Block Ziehbewegungen verarbeiten soll. Er implementiert die Logik, um einen Block als draggable zu definieren. Wenn Sie neue Strategien zum Ziehen von Blöcken erstellen, können Sie festlegen, wie Blöcke mit Ziehbewegungen umgehen sollen, ohne eine benutzerdefinierte auswählbare Option oder Auswahl zu verarbeiten.

So kann es beispielsweise sinnvoll sein, den Block beim Ziehen zu duplizieren, anstatt ihn normal zu ziehen. Mit Block-Drag-Strategien ist dies möglich.

Abgesehen von der getRelativeToSurfaceXY-Methode haben Zieh-Strategien dieselben Methoden wie IDraggable.

Implementierung

Zum Erstellen einer Drag-Strategie müssen Sie die IDragStrategy-Schnittstelle implementieren. Hierfür sind dieselben Methoden wie bei der IDraggable-Schnittstelle erforderlich, mit Ausnahme der Methode getRelativeToSurfaceXY, die der Block bereits implementiert.

Sie können der Anleitung zum Implementieren eines ziehbaren Produkts folgen, um Ihre Drag-Strategie zu implementieren, aber überspringen Sie die Implementierung von getRelativeToSurfaceXY().

Nutzung

Um eine benutzerdefinierte Ziehstrategie zu verwenden, müssen Sie diese auf jede Instanz eines Blocks anwenden. Sie können dies in der Methode init des Blocks durch Aufrufen von setDragStrategy tun.

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