chặn > WorkspaceSvg

Lớp WorkspaceSvg

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

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 Đối tượng sửa đổi Mô tả
(hàm khởi tạo)(options) Tạo một thực thể mới của lớp WorkspaceSvg

Thuộc tính

Thuộc tính Đối tượng sửa đổi Loại Mô tả
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => vô hiệu) | rỗng Các nhà phát triển có thể định nghĩa hàm này để thêm các lựa chọn trê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 lựa chọn trình đơn do Workspace tạo ra.
keyboardAccessibilityMode boolean True nếu chế độ hỗ trợ tiếp cận của bàn phím đang bật, nếu không thì sẽ là false.
được kết xuất boolean Trạng thái kết xuất 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à true cho các thực thể của WorkspaceSvg.
scale số Tỷ lệ 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 số

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

Bạn nên xem xét 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 sẽ trở nên tích cực hơn và khung hiển thị hiện là "nhìn" ở 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 là "nhìn" ở bên phải của canvas.

Điều khó hiểu về giá trị này là giá trị này không có và không được bao gồm độ lệch tuyệt đốiTrái. Điều này là do giá trị này được dùng để tính giá trị viewLeft.

viewLeft tương ứng với nguồn gốc của không gian làm việc (mặc dù theo đơ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 không gian làm việc được bật). Nút này được dịch chuyển từ phía trên cùng bên trái của blocklyDiv để không nằm bên dưới hộp công cụ.

Khi không gian làm việc được bật, viewLeft và gốc không gian làm việc sẽ ở 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) sẽ mang lại giá trị dương hơn và viewLeft trở nên tiêu cực hơn so với gốc không gian làm việc (hãy tưởng tượng gốc không gian làm việc là 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 bao gồm tuyệt đốiTrái, thì điều này sẽ theo cách "unshift" 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 số

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

Bạn nên xem xét 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 sẽ trở nên tích cực hơn và khung hiển thị hiện là "thấy" phần trên của canvas. Khi canvas di chuyển lên, giá trị này sẽ trở nên âm hơn và chế độ xem đang "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ó và không được bao gồm độ lệch tuyệt đối. Điều này là do giá trị này được dùng để tính giá trị viewTop.

viewTop tương ứng với nguồn gốc của không gian làm việc (mặc dù theo đơ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 không gian làm việc được bật). Nút này được dịch chuyển từ phía trên cùng bên trái của blocklyDiv để không nằm bên dưới hộp công cụ.

Khi không gian làm việc được bật, viewTop và gốc không gian làm việc sẽ nằm ở cùng một vị trí Y. Khi canvas trượt xuống cuối, giá trị này (scrollY) sẽ mang lại giá trị dương hơn và viewTop trở nên âm hơn so với gốc không gian làm việc (hình ảnh ở 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 tuyệt đối, điều này sẽ theo cách "không chuyển dịch" nguồn gốc không gian làm việc. Điều này có nghĩa là viewTop sẽ biểu thị 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 số Giá trị cuộn theo chiều ngang khi bắt đầu thao tác cuộn theo đơn vị pixel.
startScrollY số Giá trị cuộn theo chiều dọc khi bắt đầu cuộn 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 | rỗng

Phương thức

Phương thức Đối tượng sửa đổi Mô tả
addTopBlock(block) Thêm một khối vào danh sách các khối hàng đầu.
addTopBoundedElement(element) Thêm một phần tử bị ràng buộc vào danh sách các phần tử bị ràng buộc trên cùng.
addTopComment(comment) Thêm một nhận xét vào danh sách các bình luận 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 này có các khối khác được xếp chồng bên dưới, thì không gian làm việc sẽ được căn giữa trên ngăn xếp, trừ khi khối chỉ có giá trị là true.
cleanUp() 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, cùng với tính năng 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 bằng tên đã cho. Cập nhật trình đơn để 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 bảng điều khiển để cho thấy ngay rằng 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 quy tắc chặn được sắp xếp theo vị trí; từ trên xuống dưới (với độ lệch nhỏ về LTR hoặc RTL).
getAudioManager() 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ã nhận dạng đã chỉ định.
getBlocksBoundingBox() Tính 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 khoá đã cho, đối với những lượt nhấp vào các nút và nhãn trong chế độ bay.
getCanvas() Tải phần tử SVG tạo thành bề mặt 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ề mục tiêu kéo mà sự kiện con trỏ kết thúc.
getFlyout(opt_own) Phương thức getter cho thiết bị bay liên kết với không gian làm việc này. Trang công cụ này có thể thuộc quyền 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ị này sẽ là rỗng nếu không có cửa sổ mục tiêu.
getGrid() Lấy đối tượng lưới cho không gian làm việc này hoặc giá trị rỗng nếu không có.
getInverseScreenCTM() Phương thức getter cho CTM màn hình đảo ngược.
getLayerManager()
getMarkerManager() Tải trình quản lý điểm đánh dấu cho không gian làm việc này.
getMetricsManager() Truy xuất 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 lệnh này chỉ được gọi sau khi không gian làm việc đã được đưa vào DOM.
getRenderer() Tải trình kết xuất khối vào không gian làm việc này.
getRootWorkspace()
getScale() Lấy hệ số thu phóng của không gian làm việc. Nếu không gian làm việc có cấp độ gốc, chúng tôi sẽ gọi điện thoại mẹ để lấy tỷ lệ không gian làm việc.
getSvgGroup() Trả về nhóm SVG cho không gian làm việc.
getTheme() Lấy đối tượng giao diện của Workspace.
getToolbox() Phương thức getter cho hộp công cụ được liên kết với không gian làm việc này, nếu có.
getToolboxCategoryCallback(key) Lấy hàm callback liên kết với một khoá nhất định để điền sẵ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 quy tắc chặn được sắp xếp theo vị trí; từ trên xuống dưới (với độ lệch nhỏ về LTR hoặc RTL).
getTopBoundedElements() Tìm các phần tử bị ràng buộc cấp cao nhất và 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 XML.
hideChaff(onlyClosePopups) Đóng phần chú thích, trình đơn theo bối cảnh, lựa chọn trong trình đơn thả xuống, v.v.
hideComponents(onlyClosePopups) Ẩn mọi thành phần có thể tự động ẩn (như cửa sổ bay, thùng rác và mọi thành phần đã đăng ký 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 trực quan các khối hiện đang được thực thi.
isDraggable() Không gian làm việc này có kéo được không?
isDragging() Hiện tại, người dùng có kéo một khối hoặc cuộn trang ra/không gian làm việc không?
isMovable()

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

Tức là người dùng có thể đặt lại toạ độ X Y của không gian làm việc thông qua dữ liệu được nhập. Bạn có thể thực hiện việc này thông qua 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 vào vị trí chuột). Điều này không bao gồm thu phóng bằng các nút điều khiển thu phóng vì toạ độ X Y được quyết định bằng chương trình.

isMovableHorizontally() Không gian làm việc này có di chuyển theo chiều ngang không?
isMovableVertically() Không gian làm việc này có 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 tiêu điểm.
moveDrag(e) Theo dõi quá trình kéo của một đối tượng trên không gian làm việc này.
newBlock(prototypeName, opt_id) Nhận một khối mới tạo.
newComment(id) Nhận một bình luận mới tạo.
recordDragTargets() Tạo một danh sách tất cả các vùng 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ý một hàm callback liên kết với một khoá nhất định để người dùng nhấp vào các nút và nhãn trong hộp thoại thông minh. Ví dụ: một nút do XML chỉ định phải khớp với một 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 sẵ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 các danh mục biến và quy trình làm ví dụ.
removeButtonCallback(key) Xoá lệnh gọi lại đối với một lượt nhấp vào nút trong chế độ bay.
removeToolboxCategoryCallback(key) Xoá lệnh gọi lại cho một lượt nhấp vào tên danh mục tuỳ chỉnh trong hộp công cụ.
removeTopBlock(block) Xoá một khối khỏi danh sách các khối hàng đầu.
removeTopBoundedElement(element) Xoá một phần tử bị ràng buộc khỏi danh sách các phần tử bị ràng buộc 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 đồ của biến. Cập nhật trình đơn để hiện biến đã đổi tên ngay lập tức.
render() 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ó sự 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, tính năng 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 của trình xử lý thay đổi kích thước để chúng ta có thể xoá dữ liệu này 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 một 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) Bật/tắt 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 quá trình kéo của 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 màn hình ngược là bị bẩn.
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) Phóng to hoặc thu nhỏ không gian làm việc tương ứng với/chính giữa trên toạ độ (x, y) đã cho.
zoomCenter(type) Phóng to hoặc thu nhỏ các khối ở giữa chế độ xem.
zoomToFit() Thu phóng các khối cho vừa với không gian làm việc nếu có thể.