Bản khảo sát nghiên cứu: Cho chúng tôi biết trải nghiệm của bạn khi sử dụng Blockly
Bắt đầu khảo sát
Chiến lược kéo khối tuỳ chỉnh
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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...
}
}
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-05-23 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-05-23 UTC."],[[["Block drag strategies dictate how blocks respond to drag events, offering an alternative to custom selectables."],["By implementing the `IDragStrategy` interface, developers can create custom drag behaviors like block duplication on drag."],["Drag strategies encompass the functionality of `IDraggable`, excluding the `getRelativeToSurfaceXY` method, which is handled internally by the block."],["Applying a custom drag strategy requires using `setDragStrategy` within the block's `init` method to associate the strategy with each block instance."]]],["Block drag strategies dictate how a block behaves during drags, allowing for custom drag behaviors like duplication. Developers implement the `IDragStrategy` interface, which mirrors `IDraggable` methods except for `getRelativeToSurfaceXY`. To apply a custom strategy, use the `setDragStrategy` method within a block's `init` method. This enables switching block drag behavior without altering core selection or drag handling. You must implement all the methods of `IDraggable` in the custom strategy except for `getRelativeToSurfaceXY`.\n"]]