自定义块拖动策略

图块拖动策略是一种对象,用于确定应如何处理图块 拖动。它们实现了相应逻辑,使块变为可拖动。 通过创建新的块拖动策略,您可以切换块应如何处理拖动操作,而无需处理创建自定义可选择项或处理选择操作。

例如,您可能希望在拖动时复制砌块,而不是 以便正常拖动。块拖动策略可以帮助您做到这一点。

除了 getRelativeToSurfaceXY 方法外,拖动策略与 IDraggable 具有相同的所有方法。

实现

如需创建拖动策略,您需要实现 IDragStrategy 接口。这需要所有相同的方法 用作 IDraggable 接口(getRelativeToSurfaceXY 方法除外), 已实施的屏蔽规则

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

用法

如需使用自定义拖动策略,您需要对每个对象应用拖动策略 块的实例。您可以在代码块的 init 方法中通过调用 setDragStrategy 来实现此目的。

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