Chiến lược kéo chặn

Chiến lược kéo khối là một đối tượng xác định cách một khối sẽ xử lý các thao tác kéo. Chúng triển khai logic để tạo một khối thành có thể kéo. Việc tạo chiến lược kéo khối mới cho phép bạn thay đổi cách các khối sẽ xử lý thao tác kéo mà không cần phải tạo ra một lựa chọn tuỳ chỉnh có thể chọn hoặc xử lý lựa chọn.

Ví dụ: bạn có thể muốn khối của mình sao chép khi kéo, thay vì kéo thông thường. Chiến lược kéo khối cho phép bạn làm điều đó.

Các chiến lược kéo có tất cả phương thức giống như IDraggable, ngoài phương thức getRelativeToSurfaceXY.

Triển khai

Để tạo một chiến lược kéo, bạn cần triển khai giao diện IDragStrategy. Việc này yêu cầu tất cả các phương thức tương tự như giao diện IDraggable, ngoại trừ phương thức getRelativeToSurfaceXY mà khối đã triển khai.

Bạn có thể làm theo hướng dẫn triển khai chiến lược kéo được để triển khai chiến lược kéo, nhưng bỏ qua bước triển khai getRelativeToSurfaceXY().

Cách sử dụng

Để sử dụng chiến lược kéo tuỳ chỉnh, bạn cần áp dụng chiến lược kéo này cho từng thực thể của khối. Bạn có thể thực hiện việc này trong phương thức init của khối bằng cách gọi setDragStrategy.

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