Chiến lược kéo khối tuỳ chỉnh

Chiến lược kéo khối là đối tượng xác định cách khối sẽ xử lý kéo. Các lớp này triển khai logic để tạo một khối có thể kéo. Việc tạo chiến lược kéo khối mới cho phép bạn chọn cách xử lý các khối mà không cần phải tạo đối tượng có thể chọn hoặc xử lý tuỳ chỉnh 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 bình thường. Các chiến lược kéo chặn cho phép bạn làm việc đó.

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

Triển khai

Để tạo chiến lược kéo, bạn cần triển khai Giao diện IDragStrategy. Điều này yêu cầu tất cả các phương pháp tương tự làm 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 thuộc tính có thể kéo để 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 cho từng phiên bản của một 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 đang gọi setDragStrategy.

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