blockly > LineCursor

Lớp LineCursor

Lớp cho con trỏ dòng.

Chữ ký:

export declare class LineCursor extends Marker 

Mở rộng: Marker

Hàm khởi tạo

Hàm dựng Đối tượng sửa đổi Mô tả
(constructor)(workspace) Tạo một thực thể mới của lớp LineCursor

Thuộc tính

Thuộc tính Đối tượng sửa đổi Loại Mô tả
type chuỗi
workspace

protected

readonly

WorkspaceSvg

Phương thức

Phương thức Đối tượng sửa đổi Mô tả
atEndOfLine() Trả về giá trị true nếu nút mà chúng ta sẽ điều hướng đến nếu gọi in() giống với nút mà chúng ta sẽ điều hướng đến nếu gọi next() – trên thực tế, nếu LineCursor ở cuối "dòng hiện tại" của chương trình.
getCurNode()

Lấy vị trí hiện tại của con trỏ.

Ghi đè Marker getCurNode thông thường để cập nhật nút hiện tại từ khối đã chọn. Điều này thường xảy ra thông qua trình nghe lựa chọn nhưng không được gọi ngay khi Gesture gọi Blockly.common.setSelected. Cụ thể, trình nghe sẽ chạy sau khi trình đơn theo bối cảnh xuất hiện.

getFirstNode() Nhận nút đầu tiên có thể điều hướng trên không gian làm việc hoặc giá trị rỗng nếu không có nút nào.
getLastNode() Nhận nút có thể điều hướng cuối cùng trên không gian làm việc hoặc giá trị rỗng nếu không có nút nào.
getNextNode(node, isValid, loop) Lấy nút tiếp theo trong AST, có thể cho phép vòng lặp.
getPreviousNode(node, isValid, loop) Lấy nút trước đó trong AST, có thể cho phép vòng lặp.
in() Di chuyển con trỏ đến kết nối hoặc trường đầu vào tiếp theo theo thứ tự duyệt trước.
next() Di chuyển con trỏ đến khối hoặc nhận xét tiếp theo trong không gian làm việc theo thứ tự duyệt trước.
out() Di chuyển con trỏ đến trường hoặc kết nối đầu vào trước đó trong quá trình duyệt theo thứ tự trước.
postDelete() Di chuyển con trỏ đến vị trí hợp lệ đầu tiên trong this.potentialNodes, sau khi xoá một khối.
preDelete(deletedBlock)

Chuẩn bị cho việc xoá một khối bằng cách tạo danh sách các nút mà chúng ta có thể di chuyển con trỏ đến sau đó và lưu vào this.potentialNodes.

Sau khi xoá, hãy gọi postDelete để di chuyển nút đó đến nút hợp lệ đầu tiên trong danh sách.

Các vị trí cần thử (theo thứ tự ưu tiên) là:

– Vị trí hiện tại. – Kết nối mà khối đã xoá được đính kèm. – Khối được kết nối với kết nối tiếp theo của khối đã bị xoá. – Khối mẹ của khối đã bị xoá. – Một vị trí trên không gian làm việc bên dưới khối đã xoá.

N.B.: Khi bạn xoá một khối, tất cả các khối được kết nối với đầu vào của khối đó cũng sẽ bị xoá, nhưng các khối được kết nối với kết nối tiếp theo của khối đó thì không.

prev() Di chuyển con trỏ đến khối hoặc nhận xét trước đó trong không gian làm việc theo thứ tự duyệt trước.
setCurNode(newNode)

Đặt vị trí của con trỏ và vẽ con trỏ.

Ghi đè logic Marker setCurNode thông thường để gọi this.drawMarker() thay vì this.drawer.draw() một cách trực tiếp.