blockly > WorkspaceSvg

Classe WorkspaceSvg

Corso per uno spazio di lavoro. Questa è un'area sullo schermo con la possibilità di aggiungere cestino, barre di scorrimento, bolle e trascinamento.

Firma:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Espansioni: Area di lavoro

Implementazioni: IASTNodeLocationSvg

Costruttori

Costruttore Modificatori Descrizione
(costruttore)(opzioni) Crea una nuova istanza della classe WorkspaceSvg

Proprietà

Proprietà Modificatori Tipo Descrizione
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null Gli sviluppatori possono definire questa funzione per aggiungere opzioni di menu personalizzate al menu contestuale dell'area di lavoro o modificare l'insieme di opzioni di menu creato dallo spazio di lavoro.
keyboardAccessibilityMode boolean True se la modalità di accessibilità della tastiera è attiva, su false negli altri casi.
rendering boolean Lo stato di rendering di un'area di lavoro SVG. Restituisce false per le aree di lavoro headless e true per le istanze di WorkspaceSvg.
scala numero Scala attuale.
barra di scorrimento ScrollbarPair | null Barre di scorrimento di quest'area di lavoro, se presenti.
scrollX numero

Offset attuale dello scorrimento orizzontale in unità di pixel, rispetto all'origine dell'area di lavoro.

È utile pensare a una vista e a una tela che si sposta sotto questa vista. Man mano che il canvas si sposta verso destra, questo valore diventa più positivo e la visualizzazione "veda" il lato sinistro del canvas. Man mano che il canvas si sposta verso sinistra, questo valore diventa più negativo e la visualizzazione sta ora "vedendo" il lato destro del canvas.

L'aspetto poco chiaro di questo valore è che non corrisponde a questo valore e non deve includere l'offset AssolutoLeft. Questo perché viene utilizzato per calcolare il valore viewLeft.

L'elemento viewLeft è relativo all'origine dell'area di lavoro (sebbene in unità di pixel). L'origine dell'area di lavoro è l'angolo in alto a sinistra dello spazio di lavoro (almeno quando è attivata). Viene spostato dall'angolo superiore sinistro di blocklyDiv in modo da non trovarsi sotto la casella degli strumenti.

Quando lo spazio di lavoro è abilitato, l'origine viewLeft e l'origine dell'area di lavoro si trovano alla stessa posizione X. Man mano che il canvas scorre verso destra, sotto la visualizzazione, questo valore (scrollX) diventa più positivo, mentre viewLeft diventa più negativo rispetto all'origine dell'area di lavoro (immagina l'origine dell'area di lavoro come un punto sul canvas che scorre verso destra mentre l'area di lavoro si sposta).

Quindi, se la variabile scrollX dovesse includere il valore assoluto di sinistra, questo imposterebbe in alcun modo lo spostamento dell'origine dell'area di lavoro. Ciò significa che viewLeft rappresenterà il bordo sinistro di blocklyDiv, anziché il bordo sinistro dello spazio di lavoro.

scrollY numero

Offset dello scorrimento verticale corrente in unità di pixel, rispetto all'origine dell'area di lavoro.

È utile pensare a una vista e a una tela che si sposta sotto questa vista. Man mano che il canvas si sposta verso il basso, questo valore diventa più positivo e la visualizzazione "veda" la parte superiore del canvas. Man mano che il canvas si sposta verso l'alto, questo valore diventa più negativo e la visualizzazione "vede" la parte inferiore del canvas.

L'aspetto poco chiaro di questo valore è che non lo è e non deve includere l'offset absoluteTop. Questo perché viene utilizzato per calcolare il valore viewTop.

L'elemento viewTop è relativo all'origine dell'area di lavoro (sebbene in unità di pixel). L'origine dell'area di lavoro è l'angolo in alto a sinistra dello spazio di lavoro (almeno quando è attivata). Viene spostato dall'angolo superiore sinistro di blocklyDiv in modo da non trovarsi sotto la casella degli strumenti.

Quando lo spazio di lavoro è abilitato, viewTop e l'origine dell'area di lavoro si trovano alla stessa posizione Y. Man mano che il canvas scorre verso il basso, questo valore (scrollY) diventa più positivo e viewTop diventa più negativo rispetto all'origine dell'area di lavoro (immagine nell'origine dell'area di lavoro come un punto sul canvas che scorre verso il basso mentre l'area di lavoro si sposta).

Quindi, se lo scorrimento Y dovesse includere il valore absoluteTop, questo imposterebbe in alcun modo lo spostamento dell'origine dell'area di lavoro. Ciò significa che viewTop rappresenterà il bordo superiore di blocklyDiv, anziché il bordo superiore dell'area di lavoro.

startScrollX numero Valore di scorrimento orizzontale quando lo scorrimento è iniziato in unità di pixel.
startScrollY numero Valore di scorrimento verticale quando lo scorrimento è iniziato in unità di pixel.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
cestino Cestino | null Il cestino dello spazio di lavoro (se presente).
zoomControls_ ZoomControls | null

Metodi

Metodo Modificatori Descrizione
addTopBlock(block) Aggiunge un blocco all'elenco dei blocchi principali.
addTopBoundedElement(element) Aggiunge un elemento associato all'elenco degli elementi con limite superiore.
addTopComment(comment) Aggiunge un commento all'elenco dei commenti più popolari.
centerOnBlock(id, blockOnly) Fai scorrere l'area di lavoro per centrarla sul blocco specificato. Se al di sotto del blocco sono presenti altri blocchi, l'area di lavoro sarà centrata sull'elenco, a meno che blockOnly non sia true.
cleanUp() Pulisci l'area di lavoro ordinando tutti i blocchi in una colonna.
clear() Smaltisci tutti i blocchi nell'area di lavoro, con un'ottimizzazione per evitare ridimensionamenti.
createDom(opt_backgroundClass, injectionDiv) Crea gli elementi DOM dell'area di lavoro.
createVariable(name, opt_type, opt_id) Crea una nuova variabile con il nome specificato. Aggiorna il riquadro a scomparsa per mostrare immediatamente la nuova variabile.
deleteVariableById(id) Elimina una variabile in base all'ID trasmesso. Aggiorna il riquadro a scomparsa per mostrare immediatamente che la variabile è stata eliminata.
Disposizione (()) Elimina l'area di lavoro. Scollegati da tutti gli elementi del DOM per evitare perdite di memoria.
getAllBlocks(ordered) Trova tutti i blocchi nello spazio di lavoro. Facoltativamente, i blocchi vengono ordinati per posizione; dall'alto verso il basso (con lieve bias LTR o RTL).
getAudioManager() Ottieni il gestore audio per quest'area di lavoro.
getBlockById(id) Trova il blocco in quest'area di lavoro con l'ID specificato.
getBlocksBoundingBox() Calcola il riquadro di delimitazione per i blocchi nell'area di lavoro. Sistema di coordinate: coordinate dell'area di lavoro.
getBubbleCanvas() Ottieni l'elemento SVG che forma la superficie delle bolle.
getButtonCallback(key) Visualizza la funzione di callback associata a una determinata chiave, per i clic su pulsanti ed etichette nel riquadro a comparsa.
getCanvas() Ottieni l'elemento SVG che forma la superficie di disegno.
getComponentManager() Ottieni il gestore dei componenti per quest'area di lavoro.
getCursor() Il cursore per quest'area di lavoro.
getDragTarget(e) Restituisce il target di trascinamento su cui è stato rilevato l'evento di puntatore.
getFlyout(opt_own) Getter per il riquadro a scomparsa associato a questa area di lavoro. Questo riquadro a scomparsa può essere di proprietà della casella degli strumenti o dell'area di lavoro, a seconda della configurazione della casella degli strumenti. Il campo sarà nullo se non sono presenti interruzioni.
getGrid() Ottieni l'oggetto griglia per questa area di lavoro o nullo se non è presente.
getInverseScreenCTM() Getter per lo schermo invertito CTM.
getMarkerManager() Attiva la gestione indicatori per questo spazio di lavoro.
getMetricsManager() Ottieni il gestore delle metriche per quest'area di lavoro.
getParentSvg() Recupera l'elemento SVG che contiene questa area di lavoro. Nota: supponiamo che venga richiamata solo dopo che l'area di lavoro è stata inserita nel DOM.
getRenderer() Aggiungi il renderer del blocco a quest'area di lavoro.
getRootWorkspace()
getScale() Ottieni il fattore di zoom dell'area di lavoro. Se l'area di lavoro ha un'area di lavoro principale, richiamiamo l'area di lavoro principale per ottenere la scala dell'area di lavoro.
getSvgGroup() Restituisce il gruppo SVG per l'area di lavoro.
getTheme() Recupera l'oggetto del tema dell'area di lavoro.
getToolbox() Getter per gli strumenti associati a questa area di lavoro, se esistente.
getToolboxCategoryCallback(key) Recupera la funzione di callback associata a una determinata chiave per inserire le categorie degli strumenti personalizzate in quest'area di lavoro.
getTopBlocks(ordered) Trova i blocchi di primo livello e li restituisce. Facoltativamente, i blocchi vengono ordinati per posizione; dall'alto verso il basso (con lieve bias LTR o RTL).
getTopBoundedElements() Trova gli elementi limitati di primo livello e li restituisce.
getWidth() Restituisce l'offset orizzontale dell'area di lavoro. Destinato alla compatibilità LTR/RTL in XML.
hideChaff(onlyClosePopups) Chiudi descrizioni comando, menu contestuali, selezioni menu a discesa e così via.
hideComponents(onlyClosePopups) Nascondi tutti i componenti nascondibili automaticamente (come riquadro a scomparsa, cestino e tutti i componenti registrati dall'utente).
highlightBlock(id, opt_state) Evidenzia o rimuovi l'evidenziazione da un blocco nello spazio di lavoro. L'evidenziazione dei blocchi viene spesso utilizzata per contrassegnare visivamente i blocchi attualmente in esecuzione.
isDraggable() Questa area di lavoro è trascinabile?
isDragging() Al momento l'utente sta trascinando un blocco o scorrendo l'area di lavoro o la finestra a comparsa?
isMovable()

Questa area di lavoro è spostabile?

Ciò significa che l'utente può riposizionare le coordinate X Y dell'area di lavoro tramite l'input. Ad esempio, puoi usare le barre di scorrimento, la rotellina di scorrimento, trascinare o eseguire lo zoom con la rotellina di scorrimento o pizzicare (dato che lo zoom è centrato sulla posizione del mouse). Non è incluso lo zoom con i controlli di zoom, poiché le coordinate X Y vengono stabilite in modo programmatico.

isMovableHorizontally() Questa area di lavoro è spostabile orizzontalmente?
isMovableVertically() L'area di lavoro è spostabile in verticale?
isVisible() Getter per isVisibile
markFocused() Contrassegna questa area di lavoro come area di lavoro principale attualmente attiva.
moveDrag(e) Monitora il trascinamento di un oggetto in questo spazio di lavoro.
newBlock(prototypeName, opt_id) Ottieni un blocco appena creato.
Incolla(stato) Incolla il blocco o il commento dell'area di lavoro fornito nell'area di lavoro. Non controlla se è ancora disponibile la capacità rimanente per l'oggetto, che deve essere eseguita prima di chiamare questo metodo.
recordDragTargets() Crea un elenco di tutte le aree di eliminazione per quest'area di lavoro.
refreshTheme() Aggiorna tutti i blocchi nell'area di lavoro dopo l'aggiornamento di un tema.
registerButtonCallback(key, func) Consente di registrare una funzione di callback associata a una chiave specifica per i clic su pulsanti ed etichette nel riquadro a scomparsa. Ad esempio, un pulsante specificato dal codice XML deve essere abbinato a una chiamata a registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) Registra una funzione di callback associata a una determinata chiave, per inserire le categorie degli strumenti personalizzate in quest'area di lavoro. Ad esempio, puoi vedere le categorie di variabili e procedure.
removeButtonCallback(key) Rimuovi un callback per un clic su un pulsante nel riquadro a comparsa.
removeToolboxCategoryCallback(key) Rimuovi un callback per un clic sul nome di una categoria personalizzata nella casella degli strumenti.
removeTopBlock(block) Rimuove un blocco dall'elenco dei blocchi principali.
removeTopBoundedElement(element) Rimuove un elemento associato dall'elenco degli elementi con limite superiore.
removeTopComment(comment) Rimuove un commento dall'elenco dei commenti più popolari.
renameVariableById(id, newName) Rinomina una variabile aggiornandone il nome nella mappa. Aggiorna il riquadro a scomparsa per mostrare immediatamente la variabile rinominata.
render() Esegui il rendering di tutti i blocchi nell'area di lavoro.
resize() Ridimensionare e riposizionare tutte le sezioni dell'area di lavoro di Chrome (strumenti, cestino, barre di scorrimento e così via). Deve essere richiamato quando qualcosa cambia che richiede il ricalcolo delle dimensioni e delle posizioni del cestino, dello zoom, della casella degli strumenti e così via (ad es. il ridimensionamento della finestra).
scrollCenter() Centra l'area di lavoro.
setResizeHandlerWrapper(handler) Salva i dati del gestore del ridimensionamento in modo da poterli eliminare in seguito.
setResizesEnabled(enabled) Aggiorna se in quest'area di lavoro sono attivati i ridimensionamenti. Se questa opzione è attiva, l'area di lavoro verrà ridimensionata quando opportuno. Se questa opzione è disattivata, lo spazio di lavoro non verrà ridimensionato fino a quando non viene riattivata. Da utilizzare per evitare il ridimensionamento durante un'operazione batch per migliorare le prestazioni.
setScale(newScale) Imposta il fattore di zoom dello spazio di lavoro.
setTheme(theme) Imposta l'oggetto tema dell'area di lavoro. Se non viene passato alcun tema, usa il tema Classic per impostazione predefinita.
setVisible(isVisible) Attiva/disattiva la visibilità dello spazio di lavoro. Attualmente destinato solo all'area di lavoro principale.
startDrag(e, xy) Inizia a monitorare il trascinamento di un oggetto in quest'area di lavoro.
translate(x, y) Traduci questa area di lavoro in nuove coordinate.
updateInverseScreenCTM() Contrassegna la scritta CTM dello schermo inverso come sporca.
updateToolbox(toolboxDef) Modifica la struttura ad albero dei blocchi nella toolbox esistente.
zoom(x, y, quantità) Aumenta o diminuisce lo zoom dell'area di lavoro rispetto o centrata sulla coordinata (x, y) specificata.
zoomCenter(type) Aumenta o diminuisci lo zoom sui blocchi centrati al centro dell'inquadratura.
zoomToFit() Se possibile, esegui lo zoom dei blocchi per adattarli allo spazio di lavoro.