封鎖拖曳策略

區塊拖曳策略是一種物件,用來決定區塊應處理拖曳的方式。協同程式會實作邏輯,讓區塊成為「可拖曳」。建立新的區塊拖曳策略,即可切換區塊如何處理拖曳作業,而不必建立自訂的可選取項目或處理選取作業。

例如,您可能希望在拖曳時複製區塊,而非正常拖曳。封鎖拖曳策略即可達成此目標。

除了 getRelativeToSurfaceXY 方法之外,拖曳策略使用的方法與 IDraggable 相同。

導入作業

如要建立拖曳策略,您必須實作 IDragStrategy 介面。這需要與 IDraggable 介面相同的所有方法,但區塊已實作的 getRelativeToSurfaceXY 方法除外。

您可以按照實作可拖曳的操作說明實作拖曳策略,但略過實作 getRelativeToSurfaceXY()

使用方式

如要使用自訂拖曳策略,您需要將拖曳策略套用至區塊的每個例項。您可以在區塊的 init 方法中呼叫 setDragStrategy 來執行這項操作。

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