屏蔽拖动策略

块拖动策略是一个对象,用于确定块应如何处理拖动。它们会实现相应的逻辑,将代码块设为可拖动。通过创建新的块拖动策略,您可以切换块处理拖动的方式,而无需创建自定义可选择或处理选择。

例如,您可能希望在拖动时复制图块,而不是正常拖动。通过阻止拖动策略,您可以做到这一点。

除了 getRelativeToSurfaceXY 方法之外,拖动策略的方法与 IDraggable 完全相同。

实现

如需创建拖动策略,您需要实现 IDragStrategy 接口。这需要使用与 IDraggable 接口相同的方法,但代码块已实现的 getRelativeToSurfaceXY 方法除外。

您可以按照实现可拖动项的说明来实现拖动策略,但跳过实现 getRelativeToSurfaceXY()

用量

如需使用自定义拖动策略,您需要将拖动策略应用于块的每个实例。您可以在块的 init 方法中通过调用 setDragStrategy 来完成此操作。

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