Không gian tên sự kiện
Lớp
Lớp | Mô tả |
---|---|
BlockBase | Lớp trừu tượng cho mọi sự kiện liên quan đến các khối. |
BlockChange | Thông báo cho trình nghe khi một số phần tử của một khối đã thay đổi (ví dụ: giá trị trường, nhận xét, v.v.). |
BlockCreate | Thông báo cho trình nghe khi một khối (hoặc ngăn xếp khối được kết nối) được tạo. |
BlockDelete | Thông báo cho trình nghe khi một khối (hoặc ngăn xếp khối được kết nối) bị xoá. |
BlockDrag | Thông báo cho trình nghe khi một khối đang được kéo/thả theo cách thủ công. |
BlockFieldIntermediateChange | Thông báo cho trình nghe khi giá trị của trường trong một khối đã thay đổi nhưng thay đổi chưa hoàn tất và dự kiến sẽ theo sau là một sự kiện thay đổi khối. |
BlockMove | Thông báo cho trình nghe khi một khối được di chuyển. Điều này có thể xảy ra từ một kết nối đến một kết nối khác hoặc từ một vị trí trên không gian làm việc đến một vị trí khác. |
BubbleOpen | Lớp cho sự kiện mở bong bóng trò chuyện. |
Số lượt nhấp | Thông báo cho trình nghe rằng một số phần tử khối đã được nhấp vào. |
CommentBase | Lớp trừu tượng cho sự kiện bình luận. |
CommentChange | Thông báo cho trình nghe rằng nội dung của một nhận xét trong không gian làm việc đã thay đổi. |
CommentCollapse | |
CommentCreate | Thông báo cho trình nghe rằng một nhận xét về không gian làm việc đã được tạo. |
CommentDelete | Thông báo cho trình nghe rằng một bình luận trên không gian làm việc đã bị xoá. |
CommentDrag | Thông báo cho trình nghe khi một bình luận đang được kéo/thả theo cách thủ công. |
CommentMove | Thông báo cho trình nghe rằng một nhận xét trong không gian làm việc đã được di chuyển. |
CommentResize | Thông báo cho trình nghe rằng một nhận xét trong không gian làm việc đã đổi kích thước. |
FinishedLoading | Thông báo cho trình nghe khi không gian làm việc đã hoàn tất quá trình chuyển đổi tuần tự từ JSON/XML. |
Đã chọn | Lớp cho một sự kiện đã chọn. Thông báo cho trình nghe rằng một phần tử mới đã được chọn. |
ThemeChange | Thông báo cho trình nghe rằng giao diện không gian làm việc đã thay đổi. |
ToolboxItemSelect | Thông báo cho trình nghe rằng một mục trong hộp công cụ đã được chọn. |
TrashcanOpen | Thông báo cho trình nghe khi thùng rác đang mở hoặc đóng. |
UiBase | Lớp cơ sở cho một sự kiện trên giao diện người dùng. Sự kiện giao diện người dùng là những sự kiện không cần được gửi qua mạng để tính năng chỉnh sửa nhiều người dùng hoạt động (ví dụ: cuộn không gian làm việc, thu phóng, mở các danh mục hộp công cụ). Các sự kiện trên giao diện người dùng không huỷ hoặc làm lại. |
VarBase | Lớp trừu tượng cho một sự kiện biến. |
VarCreate | Thông báo cho trình nghe rằng một mô hình biến đã được tạo. |
VarDelete | Thông báo cho trình nghe rằng một mô hình biến đã bị xoá. |
VarRename | Thông báo cho trình nghe rằng một mô hình biến đã được đổi tên. |
VarTypeChange | Thông báo cho trình nghe rằng loại của biến đã thay đổi. |
ViewportChange | Thông báo cho trình nghe rằng vị trí hoặc tỷ lệ của nền tảng không gian làm việc đã thay đổi. Không thông báo khi không gian làm việc tự thay đổi kích thước. |
Lớp trừu tượng
Lớp trừu tượng | Mô tả |
---|---|
Trừu tượng | Lớp trừu tượng cho một sự kiện. |
Liệt kê
Liệt kê | Mô tả |
---|---|
BubbleType | |
ClickTarget |
Hàm
Chức năng | Mô tả |
---|---|
clearPendingUndo() | Sửa đổi các sự kiện huỷ đang chờ xử lý để khi được kích hoạt, các sự kiện này không rơi vào ngăn xếp huỷ. Được gọi bởi Workspace.clearUndo. |
disable() | Dừng gửi sự kiện. Mọi lệnh gọi đến hàm này cũng PHẢI gọi enable. |
disableOrphans(event) | Đặt xem một khối có bị vô hiệu hoá hay không tuỳ thuộc vào việc khối đó có được kết nối đúng cách hay không. Sử dụng phương thức này trên các ứng dụng mà tất cả các khối phải được kết nối với một khối trên cùng. |
enable() | Bắt đầu gửi sự kiện. Trừ phi các sự kiện đã bị tắt khi lệnh gọi tương ứng để tắt được thực hiện. |
filter(queue) | Lọc các sự kiện trong hàng đợi bằng cách hợp nhất các sự kiện trùng lặp, xoá các sự kiện rỗng và ghi lại các sự kiện BlockChange. Nhật ký của hàm này: Ban đầu, hàm này được thêm vào trong thay đổi cf257ea5 với mục đích giảm đáng kể tổng số sự kiện được gửi. Ban đầu, tính năng này chỉ ảnh hưởng đến các sự kiện BlockMove, nhưng theo thời gian, các sự kiện khác cũng được thêm vào. Mã đã được thêm vào để sắp xếp lại các sự kiện BlockChange được thêm trong thay đổi 5578458, vì lý do không chắc chắn nhưng có thể là một phần của nỗ lực chỉ thành công một phần để khắc phục các vấn đề về thứ tự sự kiện trong quá trình đột biến khối. Mã này có lẽ đã được thêm vào đầu hàm, trước khi hợp nhất và xoá giá trị rỗng, nhưng đã được thêm vào cuối vì lý do đã quên. Hãy xem các cuộc điều tra lỗi này để thảo luận đầy đủ hơn về vấn đề cơ bản và một số lỗi phát sinh do bản sửa lỗi không đầy đủ/không chính xác này: https://github.com/google/blockly/issues/8225#issuecomment-2195751783 https://github.com/google/blockly/issues/2037#issuecomment-2209696351 Sau đó, trong PR #1205, phương thức triển khai O(n^2) ban đầu đã được thay thế bằng phương thức triển khai theo thời gian tuyến tính, mặc dù các bản sửa lỗi bổ sung đã được thực hiện sau đó. Vào tháng 8 năm 2024, chúng tôi đã đơn giản hoá một số điểm quan trọng: Trước đây, hàm này được gọi từ Workspace.prototype.undo, nhưng việc thay đổi các sự kiện bằng hàm này là nguyên nhân gây ra vấn đề #7026 (lưu ý rằng các sự kiện sẽ kết hợp theo thứ tự ngược lại so với thứ tự chuyển tiếp). Giải pháp ban đầu được chọn cho vấn đề này là thêm (trong PR #7069) mã vào fireNow để lọc sau .undoStack_ và .redoStack_ của bất kỳ không gian làm việc nào vừa tham gia vào việc gửi sự kiện; rõ ràng là điều này đã giải quyết được vấn đề nhưng lại làm tăng thêm độ phức tạp đáng kể và khiến khó lý giải cách xử lý sự kiện để huỷ/làm lại, vì vậy, cả lệnh gọi từ thao tác huỷ và mã xử lý sau đều bị xoá, đồng thời forward=true được đặt làm mặc định trong khi gọi hàm có forward=false không còn được dùng nữa. Đồng thời, mã có lỗi để sắp xếp lại các sự kiện BlockChange đã được thay thế bằng phiên bản ít lỗi hơn của cùng một chức năng trong một hàm mới, enqueueEvent, được gọi từ fireInternal, do đó đảm bảo rằng các sự kiện sẽ theo đúng thứ tự tại thời điểm bộ lọc được gọi. Ngoài ra, mã hợp nhất sự kiện đã được sửa đổi để chỉ hợp nhất các sự kiện liền kề. Điều này giúp đơn giản hoá việc triển khai trong khi vẫn đảm bảo rằng việc hợp nhất các sự kiện không thể khiến chúng bị sắp xếp lại. |
fire(event) | Thêm một sự kiện vào hàng đợi để gửi cho trình nghe thay đổi. Lưu ý: – Các sự kiện được đưa vào hàng đợi cho đến khi hết thời gian chờ, thường là sau khi kết thúc quá trình kết xuất hoặc khi kết thúc tác vụ vi mô hiện tại, nếu không chạy trong trình duyệt. – Các sự kiện trong hàng đợi có thể bị sửa đổi theo cách huỷ bỏ bằng cách kết hợp với các sự kiện được thêm vào hàng đợi sau này, nhưng chỉ cho đến khi các sự kiện đó được kích hoạt. – Các sự kiện được gửi qua phương thức fireChangeListener trên không gian làm việc bị ảnh hưởng. |
fromJson(json, workspace) | Giải mã JSON thành một sự kiện. |
get(eventType) | Lấy lớp cho một loại sự kiện cụ thể từ sổ đăng ký. |
getGroup() | Nhóm hiện tại. |
getRecordUndo() | Trả về việc các sự kiện có được thêm vào ngăn xếp huỷ hay không. |
isEnabled() | Trả về kết quả về việc có thể kích hoạt sự kiện hay không. |
setGroup(state) | Bắt đầu hoặc dừng một nhóm. |
setRecordUndo(newValue) | Đặt xem có nên thêm sự kiện vào ngăn xếp huỷ hay không. |
Giao diện
Biến
Biến | Mô tả |
---|---|
BLOCK_CHANGE | |
BLOCK_CREATE | |
BLOCK_DELETE | |
BLOCK_DRAG | |
BLOCK_FIELD_INTERMEDIATE_CHANGE | |
BLOCK_MOVE | |
BUBBLE_OPEN | |
BUMP_EVENTS | Danh sách các sự kiện khiến đối tượng bị đẩy trở lại phần hiển thị của không gian làm việc. Đừng nhầm lẫn với việc đẩy để các kết nối đã ngắt kết nối không xuất hiện là đã kết nối. |
THAY ĐỔI | |
NHẤP | |
COMMENT_CHANGE | |
COMMENT_CREATE | |
COMMENT_DELETE | |
COMMENT_DRAG | |
COMMENT_MOVE | |
COMMENT_RESIZE | |
TẠO | |
XOÁ | |
FINISHED_LOADING | |
MOVE | |
ĐÃ CHỌN | |
THEME_CHANGE | |
TOOLBOX_ITEM_SELECT | |
TRASHCAN_OPEN | |
Giao diện người dùng (UI) | |
VAR_CREATE | |
VAR_DELETE | |
VAR_RENAME | |
VIEWPORT_CHANGE |
Loại bí danh
Loại bí danh | Mô tả |
---|---|
BumpEvent | Loại sự kiện khiến các đối tượng bị đẩy trở lại phần hiển thị của không gian làm việc. Đừng nhầm lẫn với việc đẩy để các kết nối đã ngắt kết nối không xuất hiện là đã kết nối. |