區塊拖曳策略是一種物件,用來決定區塊應處理拖曳的方式。協同程式會實作邏輯,讓區塊成為「可拖曳」。建立新的區塊拖曳策略,即可切換區塊如何處理拖曳作業,而不必建立自訂的可選取項目或處理選取作業。
例如,您可能希望在拖曳時複製區塊,而非正常拖曳。封鎖拖曳策略即可達成此目標。
除了 getRelativeToSurfaceXY
方法之外,拖曳策略使用的方法與 IDraggable
相同。
導入作業
如要建立拖曳策略,您必須實作 IDragStrategy
介面。這需要與 IDraggable
介面相同的所有方法,但區塊已實作的 getRelativeToSurfaceXY
方法除外。
您可以按照實作可拖曳的操作說明實作拖曳策略,但略過實作 getRelativeToSurfaceXY()
。
使用方式
如要使用自訂拖曳策略,您需要將拖曳策略套用至區塊的每個例項。您可以在區塊的 init
方法中呼叫 setDragStrategy
來執行這項操作。
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}