Class WorkspaceSvg
Kelas untuk ruang kerja. Ini adalah area di layar dengan tempat sampah, scrollbar, balon, dan penarikan opsional.
Tanda Tangan:
export declare class WorkspaceSvg extends Workspace implements IContextMenu, IFocusableNode, IFocusableTree
Memperluas: Workspace
Mengimplementasikan: IContextMenu, IFocusableNode, IFocusableTree
Konstruktor
Konstruktor | Pengubah | Deskripsi |
---|---|---|
(constructor)(options) | Membuat instance baru class WorkspaceSvg |
Properti
Properti | Pengubah | Jenis | Deskripsi |
---|---|---|---|
configureContextMenu | ((menuOptions: ContextMenuOption[], e: Event) => void) | null | Developer dapat menentukan fungsi ini untuk menambahkan opsi menu kustom ke menu konteks ruang kerja atau mengedit set opsi menu yang dibuat ruang kerja. | |
keyboardAccessibilityMode | boolean | Benar jika mode aksesibilitas keyboard aktif, salah jika tidak. | |
keyboardMoveInProgress | boolean | Benar jika pemindahan ("penarikan") yang dimulai keyboard sedang berlangsung. | |
rendered | boolean | Status rendering ruang kerja SVG. Menampilkan false untuk ruang kerja tanpa tampilan dan benar (true) untuk instance WorkspaceSvg . |
|
skala | angka | Skala saat ini. | |
scrollbar | ScrollbarPair | null | Scrollbar ruang kerja ini, jika ada. | |
scrollX | angka | Offset scroll horizontal saat ini dalam unit piksel, relatif terhadap asal ruang kerja. Berguna untuk memikirkan tampilan, dan kanvas yang bergerak di bawah tampilan tersebut. Saat kanvas bergerak ke kanan, nilai ini menjadi lebih positif, dan tampilan kini "melihat" sisi kiri kanvas. Saat kanvas bergerak ke kiri, nilai ini menjadi lebih negatif, dan tampilan kini "melihat" sisi kanan kanvas. Hal yang membingungkan tentang nilai ini adalah bahwa nilai ini tidak, dan tidak boleh menyertakan offset absoluteLeft. Hal ini karena digunakan untuk menghitung nilai viewLeft. viewLeft relatif terhadap asal ruang kerja (meskipun dalam satuan piksel). Asal ruang kerja adalah sudut kiri atas ruang kerja (setidaknya saat diaktifkan). Posisi ini digeser dari kiri atas blocklyDiv agar tidak berada di bawah toolbox. Saat ruang kerja diaktifkan, viewLeft dan asal ruang kerja berada di lokasi X yang sama. Saat kanvas bergeser ke kanan di bawah tampilan, nilai ini (scrollX) menjadi lebih positif, dan viewLeft menjadi lebih negatif relatif terhadap asal ruang kerja (bayangkan asal ruang kerja sebagai titik pada kanvas yang bergeser ke kanan saat kanvas bergerak). Jadi, jika scrollX menyertakan absoluteLeft, hal ini akan "membatalkan pengalihan" asal ruang kerja. Artinya, viewLeft akan merepresentasikan tepi kiri blocklyDiv, bukan tepi kiri ruang kerja. |
|
scrollY | angka | Offset scroll vertikal saat ini dalam unit piksel, relatif terhadap asal ruang kerja. Berguna untuk memikirkan tampilan, dan kanvas yang bergerak di bawah tampilan tersebut. Saat kanvas bergerak ke bawah, nilai ini menjadi lebih positif, dan tampilan kini "melihat" bagian atas kanvas. Saat kanvas bergerak ke atas, nilai ini menjadi lebih negatif, dan tampilan "melihat" bagian bawah kanvas. Hal yang membingungkan tentang nilai ini adalah bahwa nilai ini tidak, dan tidak boleh menyertakan offset absoluteTop. Hal ini karena digunakan untuk menghitung nilai viewTop. viewTop relatif terhadap asal ruang kerja (meskipun dalam satuan piksel). Asal ruang kerja adalah sudut kiri atas ruang kerja (setidaknya saat diaktifkan). Posisi ini digeser dari kiri atas blocklyDiv agar tidak berada di bawah toolbox. Saat ruang kerja diaktifkan, viewTop dan asal ruang kerja berada di lokasi Y yang sama. Saat kanvas meluncur ke bawah, nilai ini (scrollY) menjadi lebih positif, dan viewTop menjadi lebih negatif relatif terhadap asal ruang kerja (gambar di asal ruang kerja sebagai titik pada kanvas yang meluncur ke bawah saat kanvas bergerak). Jadi, jika scrollY menyertakan absoluteTop, hal ini akan "membatalkan pengalihan" asal ruang kerja. Artinya, viewTop akan merepresentasikan tepi atas blocklyDiv, bukan tepi atas ruang kerja. |
|
startScrollX | angka | Nilai scroll horizontal saat scrolling dimulai dalam satuan piksel. | |
startScrollY | angka | Nilai scroll vertikal saat scrolling dimulai dalam satuan piksel. | |
svgBackground_ | SVGElement | ||
svgBlockCanvas_ | SVGElement | ||
svgBubbleCanvas_ | SVGElement | ||
svgGroup_ | SVGElement | ||
themeManager_ | protected |
ThemeManager | |
trashcan | Trashcan | null | Tempat sampah ruang kerja (jika ada). | |
zoomControls_ | ZoomControls | null |
Metode
Metode | Pengubah | Deskripsi |
---|---|---|
addClass(className) | Menambahkan class CSS ke ruang kerja. | |
addTopBlock(block) | Menambahkan blok ke daftar blok teratas. | |
addTopBoundedElement(element) | Menambahkan elemen yang dibatasi ke daftar elemen yang dibatasi teratas. | |
addTopComment(comment) | Menambahkan komentar ke daftar komentar teratas. | |
canBeFocused() | Lihat IFocusableNode.canBeFocused. | |
centerOnBlock(id, blockOnly) | Scroll ruang kerja untuk memusatkan blok tertentu. Jika blok memiliki blok lain yang ditumpuk di bawahnya, ruang kerja akan dipusatkan pada tumpukan, kecuali jika blockOnly bernilai benar (true). | |
cleanUp() | Bersihkan ruang kerja dengan menyusun semua blok dalam kolom sehingga tidak ada yang tumpang-tindih. | |
clear() | Buang semua blok di ruang kerja, dengan pengoptimalan untuk mencegah perubahan ukuran. | |
copyOptionsForFlyout() | Membuat kumpulan opsi baru dari opsi ruang kerja ini hanya dengan nilai yang relevan dengan flyout. | |
createDom(opt_backgroundClass, injectionDiv) | Buat elemen DOM ruang kerja. | |
dispose() | Hapus ruang kerja ini. Batalkan tautan dari semua elemen DOM untuk mencegah kebocoran memori. | |
getAbsoluteScale() | Menampilkan skala absolut ruang kerja. Penskalaan ruang kerja bersifat multiplikatif; jika ruang kerja B (misalnya, editor mutator) dengan skala Y disarangkan dalam ruang kerja root A dengan skala X, skala efektif ruang kerja B adalah X * Y, karena, sebagai turunan A, ruang kerja B sudah ditransformasikan oleh faktor penskalaan A, lalu mentransformasikan dirinya lebih lanjut dengan faktor penskalaannya sendiri. Biasanya ini Berfungsi, tetapi untuk elemen global (misalnya, editor kolom) yang secara visual terkait dengan ruang kerja tertentu, tetapi berada di tingkat teratas DOM, bukan sebagai turunan dari ruang kerja terkait, skala absolut/efektif mungkin diperlukan agar dapat dirender dengan tepat. |
|
getAllBlocks(ordered) | Menemukan semua blok di ruang kerja. Blok dapat diurutkan berdasarkan posisi; atas ke bawah (dengan sedikit bias LTR atau RTL). | |
getAudioManager() | Mendapatkan pengelola audio untuk ruang kerja ini. | |
getBlockById(id) | Temukan blok di ruang kerja ini dengan ID yang ditentukan. | |
getBlocksBoundingBox() | Hitung kotak pembatas untuk blok di ruang kerja. Sistem koordinat: koordinat ruang kerja. | |
getBubbleCanvas() | Dapatkan elemen SVG yang membentuk permukaan balon. | |
getButtonCallback(key) | Mendapatkan fungsi callback yang terkait dengan kunci tertentu, untuk klik pada tombol dan label di flyout. | |
getCanvas() | Dapatkan elemen SVG yang membentuk permukaan gambar. | |
getCommentById(id) | Menampilkan komentar ruang kerja dengan ID tertentu, jika ada. | |
getComponentManager() | Mendapatkan pengelola komponen untuk ruang kerja ini. | |
getCursor() | Kursor untuk ruang kerja ini. | |
getDragTarget(e) | Menampilkan target penarikan yang dilalui peristiwa penunjuk. | |
getFlyout(opt_own) | Pengambil untuk flyout yang terkait dengan ruang kerja ini. Flyout ini dapat dimiliki oleh toolbox atau ruang kerja, bergantung pada konfigurasi toolbox. Nilainya akan berupa null jika tidak ada flyout. | |
getFocusableElement() | Lihat IFocusableNode.getFocusableElement. | |
getFocusableTree() | Lihat IFocusableNode.getFocusableTree. | |
getGrid() | Mendapatkan objek petak untuk ruang kerja ini, atau null jika tidak ada. | |
getInverseScreenCTM() | Pengambil untuk CTM layar terbalik. | |
getMarkerManager() | Mendapatkan pengelola penanda untuk ruang kerja ini. | |
getMetricsManager() | Mendapatkan pengelola metrik untuk ruang kerja ini. | |
getNavigator() | Menampilkan objek yang bertanggung jawab untuk mengoordinasikan pergerakan fokus di antara item di ruang kerja ini sebagai respons terhadap perintah navigasi keyboard. | |
getNestedTrees() | Lihat IFocusableTree.getNestedTrees. | |
getParentSvg() | Dapatkan elemen SVG yang berisi ruang kerja ini. Catatan: Kita mengasumsikan bahwa fungsi ini hanya dipanggil setelah ruang kerja disisipkan ke dalam DOM. | |
getRenderer() | Mendapatkan perender blok yang terlampir ke ruang kerja ini. | |
getRestoredFocusableNode(previousNode) | Lihat IFocusableTree.getRestoredFocusableNode. | |
getRootFocusableNode() | Lihat IFocusableTree.getRootFocusableNode. | |
getRootWorkspace() | ||
getScale() | Mendapatkan faktor zoom ruang kerja. | |
getSvgGroup() | Menampilkan grup SVG untuk ruang kerja. | |
getTheme() | Mendapatkan objek tema ruang kerja. | |
getToolbox() | Pengambil untuk toolbox yang terkait dengan ruang kerja ini, jika ada. | |
getToolboxCategoryCallback(key) | Mendapatkan fungsi callback yang terkait dengan kunci tertentu, untuk mengisi kategori toolbox kustom di ruang kerja ini. | |
getTopBlocks(ordered) | Menemukan blok level teratas dan menampilkannya. Blok dapat diurutkan berdasarkan posisi; atas ke bawah (dengan sedikit bias LTR atau RTL). | |
getTopBoundedElements(ordered) | Menemukan elemen terikat level teratas dan menampilkannya. | |
getTopComments(ordered) | Menampilkan daftar komentar di ruang kerja ini. | |
getWidth() | Menampilkan offset horizontal ruang kerja. Ditujukan untuk kompatibilitas LTR/RTL di XML. | |
hideChaff(onlyClosePopups) | Menutup tooltip, menu konteks, pilihan dropdown, dll. | |
hideComponents(onlyClosePopups) | Menyembunyikan komponen yang dapat disembunyikan otomatis (seperti flyout, tempat sampah, dan komponen terdaftar pengguna). | |
highlightBlock(id, opt_state) | Menandai atau menghapus tanda pada blok di ruang kerja. Penyorotan blok sering digunakan untuk menandai blok yang sedang dieksekusi secara visual. | |
isDraggable() | Apakah ruang kerja ini dapat ditarik? | |
isDragging() | Menampilkan nilai benar (true) jika pengguna saat ini terlibat dalam gestur menarik, atau jika gerakan yang dimulai keyboard sedang berlangsung. Gestur menarik biasanya melibatkan pemindahan blok atau item lain di ruang kerja, atau men-scroll flyout/ruang kerja. Pergerakan yang dimulai keyboard diimplementasikan menggunakan infrastruktur penarikan dan dimaksudkan untuk meniru (subset) gestur penarikan, sehingga biasanya harus diperlakukan seolah-olah merupakan penarikan berbasis gestur. |
|
isMovable() | Apakah ruang kerja ini dapat dipindahkan? Artinya, pengguna dapat mengubah posisi koordinat X Y ruang kerja melalui input. Hal ini dapat dilakukan melalui scroll bar, roda scroll, penarikan, atau melalui zoom dengan roda scroll atau mencubit (karena zoom dipusatkan pada posisi mouse). Hal ini tidak termasuk melakukan zoom dengan kontrol zoom karena koordinat X Y ditentukan secara terprogram. |
|
isMovableHorizontally() | Apakah ruang kerja ini dapat dipindahkan secara horizontal? | |
isMovableVertically() | Apakah ruang kerja ini dapat dipindahkan secara vertikal? | |
isVisible() | Pengambil untuk isVisible | |
lookUpFocusableNode(id) | Lihat IFocusableTree.lookUpFocusableNode. | |
markFocused() | Menandai ruang kerja ini sebagai ruang kerja utama yang saat ini difokuskan. | |
moveDrag(e) | Melacak penarikan objek di ruang kerja ini. | |
newBlock(prototypeName, opt_id) | Mendapatkan blok yang baru dibuat. | |
newComment(id) | Mendapatkan komentar yang baru dibuat. | |
onNodeBlur() | Lihat IFocusableNode.onNodeBlur. | |
onNodeFocus() | Lihat IFocusableNode.onNodeFocus. | |
onTreeBlur(nextTree) | Lihat IFocusableTree.onTreeBlur. | |
onTreeFocus(_node, _previousTree) | Lihat IFocusableTree.onTreeFocus. | |
recordDragTargets() | Buat daftar semua area penghapusan untuk ruang kerja ini. | |
refreshTheme() | Muat ulang semua blok di ruang kerja setelah update tema. | |
registerButtonCallback(key, func) | Mendaftarkan fungsi callback yang terkait dengan kunci tertentu, untuk klik pada tombol dan label di flyout. Misalnya, tombol yang ditentukan oleh XML harus cocok dengan panggilan ke registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction). | |
registerToolboxCategoryCallback(key, func) | Mendaftarkan fungsi callback yang terkait dengan kunci tertentu, untuk mengisi kategori toolbox kustom di ruang kerja ini. Lihat kategori variabel dan prosedur sebagai contoh. | |
removeButtonCallback(key) | Menghapus callback untuk klik pada tombol di flyout. | |
removeClass(className) | Menghapus class CSS dari ruang kerja. | |
removeToolboxCategoryCallback(key) | Menghapus callback untuk klik pada nama kategori kustom di toolbox. | |
removeTopBlock(block) | Menghapus blok dari daftar blok teratas. | |
removeTopBoundedElement(element) | Menghapus elemen yang dibatasi dari daftar elemen yang dibatasi teratas. | |
removeTopComment(comment) | Menghapus komentar dari daftar komentar teratas. | |
render() | Merender semua blok di ruang kerja. | |
resize() | Mengubah ukuran dan memosisikan ulang semua chrome ruang kerja (kotak alat, sampah, scrollbar, dll.) Metode ini harus dipanggil saat ada perubahan yang memerlukan penghitungan ulang dimensi dan posisi sampah, zoom, toolbox, dll. (misalnya, pengubahan ukuran jendela). | |
scroll(x, y) | Men-scroll ruang kerja ke offset tertentu (dalam piksel), tetap berada dalam batas ruang kerja. Lihat komentar di workspaceSvg.scrollX untuk mengetahui detail selengkapnya tentang arti nilai ini. | |
scrollCenter() | Pusatkan ruang kerja. | |
setIsReadOnly(readOnly) | ||
setNavigator(newNavigator) | Menetapkan instance Navigator yang digunakan oleh ruang kerja ini. | |
setResizeHandlerWrapper(handler) | Simpan data handler pengubahan ukuran sehingga kita dapat menghapusnya nanti saat membuang. | |
setResizesEnabled(enabled) | Memperbarui apakah pengubahan ukuran di ruang kerja ini diaktifkan. Jika diaktifkan, ruang kerja akan diubah ukurannya jika diperlukan. Jika dinonaktifkan, ruang kerja tidak akan diubah ukurannya hingga diaktifkan kembali. Gunakan untuk menghindari pengubahan ukuran selama operasi batch, untuk performa. | |
setScale(newScale) | Menetapkan faktor zoom ruang kerja. | |
setTheme(theme) | Menetapkan objek tema ruang kerja. Jika tidak ada tema yang diteruskan, gunakan tema Classic secara default. |
|
setVisible(isVisible) | Mengaktifkan/menonaktifkan visibilitas ruang kerja. Saat ini hanya ditujukan untuk ruang kerja utama. | |
startDrag(e, xy) | Mulai melacak penarikan objek di ruang kerja ini. | |
translate(x, y) | Terjemahkan ruang kerja ini ke koordinat baru. | |
updateInverseScreenCTM() | Menandai CTM layar inversi sebagai kotor. | |
updateToolbox(toolboxDef) | Ubah hierarki blok pada toolbox yang ada. | |
zoom(x, y, amount) | Memperbesar atau memperkecil ruang kerja relatif terhadap/berpusat pada koordinat (x, y) yang diberikan. | |
zoomCenter(type) | Memperbesar blok yang berpusat di tengah tampilan dengan memperbesar atau memperkecil. | |
zoomToFit() | Perbesar blok agar sesuai dengan ruang kerja jika memungkinkan. |