Benutzerdefinierte Strategien zum Ziehen von Blöcken

Eine Block-Ziehen-Strategie ist ein Objekt, das festlegt, wie ein Block mit Ziehen umgegangen werden soll. Er implementiert die Logik, um einen Block als draggable zu kennzeichnen. Wenn Sie neue Strategien zum Ziehen von Blöcken erstellen, können Sie festlegen, wie Blöcke verarbeitet werden sollen ohne dass eine benutzerdefinierte Auswahl oder Auswahl.

So können Sie z. B. festlegen, dass Ihre Blöcke beim Ziehen dupliziert werden sollen, durch Ziehen normal ziehen. Mit Block-Drag-Strategien ist dies möglich.

Ziehstrategien haben dieselben Methoden wie IDraggable, außer der Methode getRelativeToSurfaceXY.

Implementierung

Wenn Sie eine Drag-Strategie erstellen möchten, müssen Sie die Schnittstelle IDragStrategy implementieren. Dazu sind dieselben Methoden erforderlich wie für die IDraggable-Benutzeroberfläche, mit Ausnahme der getRelativeToSurfaceXY-Methode, die der Block bereits implementiert.

Folgen Sie der Anleitung zum Implementieren eines anklickbaren Elements, um Ihre Drag-Strategie zu implementieren, überspringen Sie aber die Implementierung von getRelativeToSurfaceXY().

Nutzung

Wenn Sie eine benutzerdefinierte Drag-Strategie verwenden möchten, müssen Sie sie auf jede Instanz eines Blocks anwenden. Dazu rufen Sie in der init-Methode Ihres Blocks setDragStrategy auf.

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