blockly > WorkspaceSvg

lớp WorkspaceSvg

Lớp cho không gian làm việc. Đây là khu vực trên màn hình có thùng rác, thanh cuộn, bong bóng và tính năng kéo không bắt buộc.

Chữ ký:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Mở rộng: Workspace

Triển khai: IASTNodeLocationSvg

Hàm khởi tạo

Hàm dựng Công cụ sửa đổi Nội dung mô tả
(hàm khởi tạo)(tuỳ chọn) Tạo một thực thể mới của lớp WorkspaceSvg

Thuộc tính

Tài sản Công cụ sửa đổi Loại Nội dung mô tả
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null Nhà phát triển có thể xác định hàm này để thêm các lựa chọn trình đơn tuỳ chỉnh vào trình đơn theo bối cảnh của không gian làm việc hoặc chỉnh sửa nhóm tuỳ chọn trình đơn do không gian làm việc tạo.
keyboardAccessibilityMode boolean "True" nếu chế độ hỗ trợ tiếp cận bằng bàn phím đang bật, nếu không thì là "false".
đã kết xuất boolean Trạng thái hiển thị của không gian làm việc SVG. Trả về false cho không gian làm việc không có giao diện người dùng và trả về giá trị true cho các thực thể của WorkspaceSvg.
tỷ lệ number Quy mô hiện tại.
thanh cuộn ScrollbarPair | rỗng Các thanh cuộn của không gian làm việc này, nếu có.
scrollX number

Độ lệch cuộn ngang hiện tại tính bằng đơn vị pixel, so với nguồn gốc không gian làm việc.

Bạn nên nghĩ đến một khung hiển thị và một canvas di chuyển bên dưới khung hiển thị đó. Khi canvas di chuyển sang phải, giá trị này trở nên tích cực hơn và khung hiển thị hiện đang "nhìn thấy" phía bên trái của canvas. Khi canvas di chuyển sang trái, giá trị này trở nên âm hơn và khung hiển thị hiện đang "nhìn thấy" phía bên phải của canvas.

Điều gây nhầm lẫn về giá trị này là giá trị này không được chấp nhận và không được bao gồm độ chênh lệch quantityLeft. Điều này là do hàm này được dùng để tính giá trị viewLeft.

ViewLeft tương ứng với nguồn gốc không gian làm việc (mặc dù tính bằng đơn vị pixel). Nguồn gốc không gian làm việc là góc trên cùng bên trái của không gian làm việc (ít nhất là khi được bật). Nút này được dịch chuyển từ trên cùng bên trái của blocklyDiv để không nằm dưới hộp công cụ.

Khi không gian làm việc được bật, viewLeft và nguồn gốc không gian làm việc ở cùng một vị trí X. Khi canvas trượt về phía bên phải bên dưới chế độ xem, giá trị này (scrollX) trở nên tích cực hơn và viewLeft trở nên tiêu cực hơn so với điểm gốc không gian làm việc (hãy tưởng tượng nguồn gốc không gian làm việc như một dấu chấm trên canvas trượt sang phải khi canvas di chuyển).

Vì vậy, nếu scrollX phải bao gồm cả GreatLeft, thì điều này sẽ theo cách "di chuyển" nguồn gốc không gian làm việc. Điều này có nghĩa là viewLeft sẽ đại diện cho cạnh trái của blocklyDiv, thay vì cạnh trái của không gian làm việc.

scrollY number

Độ lệch cuộn dọc hiện tại tính bằng đơn vị pixel, so với gốc không gian làm việc.

Bạn nên nghĩ đến một khung hiển thị và một canvas di chuyển bên dưới khung hiển thị đó. Khi canvas di chuyển xuống, giá trị này trở nên tích cực hơn và khung hiển thị hiện đang "nhìn thấy" phần trên của canvas. Khi canvas di chuyển lên, giá trị này trở nên âm hơn và khung hiển thị "nhìn thấy" phần dưới của canvas.

Điều gây nhầm lẫn về giá trị này là giá trị này không được chấp nhận và không được bao gồm độ chênh lệch Tuyệt đối. Điều này là do giá trị này được dùng để tính toán giá trị viewTop.

viewTop tương ứng với nguồn gốc không gian làm việc (mặc dù tính bằng đơn vị pixel). Nguồn gốc không gian làm việc là góc trên cùng bên trái của không gian làm việc (ít nhất là khi được bật). Nút này được dịch chuyển từ trên cùng bên trái của blocklyDiv để không nằm dưới hộp công cụ.

Khi không gian làm việc được bật, viewTop và nguồn gốc không gian làm việc sẽ ở cùng một vị trí Y. Khi canvas trượt về phía dưới cùng, giá trị này (scrollY) trở nên dương hơn và viewTop trở nên âm hơn so với điểm gốc không gian làm việc (hình ảnh trong điểm gốc không gian làm việc dưới dạng một dấu chấm trên canvas trượt xuống khi canvas di chuyển).

Vì vậy, nếu scrollY bao gồm refundTop tuyệt đối, điều này sẽ theo cách "di chuyển" nguồn gốc không gian làm việc. Điều này có nghĩa là viewTop sẽ đại diện cho cạnh trên của blocklyDiv, thay vì cạnh trên cùng của không gian làm việc.

startScrollX number Giá trị cuộn theo chiều ngang khi cuộn bắt đầu theo đơn vị pixel.
startScrollY number Giá trị cuộn theo chiều dọc khi cuộn bắt đầu theo đơn vị pixel.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
thùng rác Thùng rác | rỗng Thùng rác của không gian làm việc (nếu có).
zoomControls_ ZoomControls | giá trị rỗng

Phương thức

Phương thức Công cụ sửa đổi Nội dung mô tả
addTopBlock(block) Thêm một khối vào danh sách khối trên cùng.
addTopBoundedElement(element) Thêm một phần tử bị giới hạn vào danh sách các phần tử bị giới hạn trên cùng.
addTopComment(comment) Thêm một nhận xét vào danh sách các nhận xét hàng đầu.
centerOnBlock(id, blockOnly) Cuộn không gian làm việc để căn giữa khối đã cho. Nếu khối có các khối khác được xếp chồng bên dưới, không gian làm việc sẽ được căn giữa trên ngăn xếp, trừ khi blockOnly là đúng.
cleanUp() Hãy dọn dẹp không gian làm việc bằng cách sắp xếp tất cả các khối trong một cột.
clear() Loại bỏ tất cả các khối trong không gian làm việc, đồng thời tối ưu hoá để ngăn việc đổi kích thước.
createDom(opt_backgroundClass, InjectionDiv) Tạo các phần tử DOM không gian làm việc.
createVariable(name, opt_type, opt_id) Tạo biến mới có tên đã đặt. Cập nhật chế độ bay để hiển thị biến mới ngay lập tức.
deleteVariableById(id) Xoá một biến theo mã nhận dạng được truyền vào. Cập nhật trình đơn thả xuống để cho biết ngay biến đã bị xoá.
dispose() Vứt bỏ không gian làm việc này. Huỷ liên kết khỏi tất cả các phần tử DOM để tránh rò rỉ bộ nhớ.
getAllBlocks(ordered) Tìm tất cả các khối trong không gian làm việc. Các khối được sắp xếp tuỳ ý theo vị trí; từ trên xuống dưới (có độ lệch LTR hoặc RTL một chút).
getAudioManager() Hãy tải trình quản lý âm thanh cho không gian làm việc này.
getBlockById(id) Tìm khối trên không gian làm việc này bằng mã được chỉ định.
getBlocksBoundingBox() Tính toán hộp giới hạn cho các khối trên không gian làm việc. Hệ toạ độ: toạ độ không gian làm việc.
getBubbleCanvas() Lấy phần tử SVG tạo thành bề mặt bong bóng.
getButtonCallback(key) Nhận hàm callback liên kết với một phím nhất định, cho các lượt nhấp vào các nút và nhãn trong chế độ bay.
getCanvas() Lấy phần tử SVG tạo thành nền tảng vẽ.
getComponentManager() Lấy trình quản lý thành phần cho không gian làm việc này.
getCursor() Con trỏ cho không gian làm việc này.
getDragTarget(e) Trả về đích kéo sự kiện con trỏ kết thúc.
getFlyout(opt_own) Phương thức getter cho chế độ bay được liên kết với không gian làm việc này. Tập dữ liệu này có thể thuộc sở hữu của hộp công cụ hoặc không gian làm việc, tuỳ thuộc vào cấu hình hộp công cụ. Giá trị rỗng sẽ là rỗng nếu không có bay ra.
getGrid() Lấy đối tượng lưới cho không gian làm việc này hoặc để trống nếu không có.
getInverseScreenCTM() Phương thức getter cho CTM màn hình đảo ngược.
getMarkerManager() Tải trình quản lý điểm đánh dấu cho không gian làm việc này.
getMetricsManager() Tải trình quản lý chỉ số cho không gian làm việc này.
getParentSvg() Lấy phần tử SVG chứa không gian làm việc này. Lưu ý: Chúng tôi giả định rằng thao tác này chỉ được gọi sau khi không gian làm việc đã được chèn vào DOM.
getRenderer() Tải trình kết xuất hình ảnh khối đính kèm vào không gian làm việc này.
getRootWorkspace()
getScale() Xem hệ số thu phóng của không gian làm việc. Nếu không gian làm việc đó có thành phần mẹ, chúng ta sẽ gọi thành phần mẹ để lấy quy mô không gian làm việc.
getSvgGroup() Trả về nhóm SVG cho không gian làm việc.
getTheme() Tải đối tượng giao diện không gian làm việc.
getToolbox() Phương thức getter cho hộp công cụ liên kết với không gian làm việc này, nếu có.
getToolboxCategoryCallback(key) Nhận hàm callback được liên kết với một khoá nhất định để điền các danh mục hộp công cụ tuỳ chỉnh trong không gian làm việc này.
getTopBlocks(ordered) Tìm các khối cấp cao nhất và trả về các khối đó. Các khối được sắp xếp tuỳ ý theo vị trí; từ trên xuống dưới (có độ lệch LTR hoặc RTL một chút).
getTopBoundedElements() Tìm các phần tử bị ràng buộc cấp cao nhất rồi trả về các phần tử đó.
getWidth() Trả về độ lệch ngang của không gian làm việc. Dành cho khả năng tương thích LTR/RTL trong tệp XML.
hideChaff(onlyClosePopups) Đóng chú giải công cụ, trình đơn theo bối cảnh, lựa chọn thả xuống, v.v.
hideComponents(onlyClosePopups) Ẩn mọi thành phần có thể tự động ẩn (như cửa sổ bật lên, thùng rác và bất kỳ thành phần nào đã đăng ký của người dùng).
highlightBlock(id, opt_state) Đánh dấu hoặc bỏ đánh dấu một khối trong không gian làm việc. Tính năng đánh dấu khối thường dùng để đánh dấu các khối hiện đang được thực thi một cách trực quan.
isDraggable() Không gian làm việc này có thể kéo được không?
isDragging() Người dùng đang kéo một khối hay đang cuộn trang bay/không gian làm việc?
isMovable()

Không gian làm việc này có thể di chuyển được không?

Điều này có nghĩa là người dùng có thể đặt lại vị trí X Y của không gian làm việc thông qua mục nhập. Bạn có thể sử dụng thanh cuộn, con lăn chuột, kéo hoặc thu phóng bằng con lăn chuột hoặc chụm (vì mức thu phóng được căn giữa trên vị trí chuột). Trong đó không bao gồm việc thu phóng bằng các nút điều khiển thu phóng vì toạ độ X Y được quyết định theo phương thức lập trình.

isMovableHorizontally() Không gian làm việc này có thể di chuyển theo chiều ngang không?
isMovableVertically() Không gian làm việc này có thể di chuyển theo chiều dọc không?
isVisible() Phương thức getter cho isVisible
markFocused() Đánh dấu không gian làm việc này là không gian làm việc chính hiện được tập trung.
moveDrag(e) Theo dõi thao tác kéo một đối tượng trên không gian làm việc này.
newBlock(prototypeName, opt_id) Lấy một khối mới tạo.
dán(trạng thái) Dán khối hoặc nhận xét không gian làm việc được cung cấp vào không gian làm việc. Không kiểm tra xem đối tượng còn đủ dung lượng hay không. Việc này nên được thực hiện trước khi gọi phương thức này.
recordDragTargets() Tạo danh sách tất cả các khu vực cần xoá cho không gian làm việc này.
refreshTheme() Làm mới tất cả các khối trên không gian làm việc sau khi cập nhật giao diện.
registerButtonCallback(key, func) Đăng ký hàm callback liên kết với một khoá nhất định cho các lượt nhấp vào các nút và nhãn trong chế độ bay. Ví dụ: nút do XML chỉ định phải khớp với lệnh gọi đến registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) Đăng ký một hàm callback được liên kết với một khoá nhất định để điền các danh mục hộp công cụ tuỳ chỉnh trong không gian làm việc này. Hãy xem ví dụ về các danh mục biến và quy trình.
removeButtonCallback(key) Xoá lệnh gọi lại cho lượt nhấp vào một nút trong chế độ bay.
removeToolboxCategoryCallback(key) Loại bỏ lệnh gọi lại cho lượt nhấp vào tên của một danh mục tuỳ chỉnh trong hộp công cụ.
removeTopBlock(block) Xoá một khối khỏi danh sách chặn trên cùng.
removeTopBoundedElement(element) Xoá một phần tử bị giới hạn khỏi danh sách các phần tử bị giới hạn trên cùng.
removeTopComment(comment) Xoá một bình luận khỏi danh sách bình luận hàng đầu.
renameVariableById(id, newName) Đổi tên một biến bằng cách cập nhật tên của biến đó trong bản đồ biến. Cập nhật trình đơn thả xuống để hiển thị biến đã đổi tên ngay lập tức.
kết xuất() Hiển thị tất cả các khối trong không gian làm việc.
resize() Đổi kích thước và đặt lại vị trí tất cả không gian làm việc của Chrome (hộp công cụ, thùng rác, thanh cuộn, v.v.) Lệnh này sẽ được gọi khi có thay đổi nào đó yêu cầu tính toán lại kích thước và vị trí của thùng rác, thu phóng, hộp công cụ, v.v. (ví dụ: đổi kích thước cửa sổ).
scrollCenter() Căn giữa không gian làm việc.
setResizeHandlerWrapper(handler) Lưu dữ liệu trình xử lý đổi kích thước để chúng tôi có thể xoá sau này.
setResizesEnabled(enabled) Cập nhật xem không gian làm việc này đã bật tính năng đổi kích thước hay chưa. Nếu được bật, không gian làm việc sẽ đổi kích thước khi thích hợp. Nếu bị tắt, không gian làm việc sẽ không đổi kích thước cho đến khi bạn bật lại. Dùng để tránh đổi kích thước trong khi thực hiện thao tác hàng loạt, nhằm đảm bảo hiệu suất.
setScale(newScale) Đặt hệ số thu phóng của không gian làm việc.
setTheme(theme) Đặt đối tượng giao diện không gian làm việc. Nếu không có giao diện nào được truyền, hãy đặt mặc định thành giao diện Classic.
setVisible(isVisible) Chuyển đổi chế độ hiển thị của không gian làm việc. Hiện chỉ dành cho không gian làm việc chính.
startDrag(e, xy) Bắt đầu theo dõi lượt kéo một đối tượng trên không gian làm việc này.
dịch(x; y) Dịch không gian làm việc này sang toạ độ mới.
updateInverseScreenCTM() Đánh dấu CTM của màn hình đảo ngược là sửa đổi.
updateToolbox(toolboxDef) Sửa đổi cây khối trên hộp công cụ hiện có.
thu phóng(x; y; số lượng) Thu phóng không gian làm việc trong hoặc thu nhỏ tương ứng với/tâm điểm trên toạ độ (x, y) đã cho.
zoomCenter(type) Thu phóng các khối nằm ở giữa ở tâm chế độ xem bằng cách phóng to hoặc thu nhỏ.
zoomToFit() Thu phóng các khối cho vừa với không gian làm việc nếu có thể.