blockly > WorkspaceSvg

Classe WorkspaceSvg

Classe para um espaço de trabalho. Esta é uma área da tela com lixeira, barras de rolagem, balões e recursos opcionais para arrastar.

Signature:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Estende: Workspace

Implementa: IASTNodeLocationSvg

Construtores

Construtor Modificadores Descrição
(construtor)(opções) Cria uma nova instância da classe WorkspaceSvg

Propriedades

Propriedade Modificadores Tipo Descrição
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | nulo Os desenvolvedores podem definir essa função para adicionar opções de menu personalizadas ao menu de contexto do espaço de trabalho ou editar o conjunto de opções de menu criado pelo espaço de trabalho.
keyboardAccessibilityMode booleano Verdadeiro se o modo de acessibilidade do teclado estiver ativado. Caso contrário, será falso.
renderizado booleano O status de renderização de um espaço de trabalho SVG. Retorna false para espaços de trabalho sem comando e verdadeiro para instâncias de WorkspaceSvg.
escala number Escala atual.
barra de rolagem ScrollbarPair | nulo As barras de rolagem deste espaço de trabalho, se houver.
scrollX number

Deslocamento de rolagem horizontal atual em unidades de pixel, em relação à origem do espaço de trabalho.

É útil pensar em uma visualização e em uma tela que se move por baixo dela. À medida que a tela se move para a direita, esse valor se torna mais positivo, e a visualização passa a ser "visualizada". no lado esquerdo da tela. À medida que a tela se move para a esquerda, esse valor se torna mais negativo, e a visualização passa a ser "visualizada". no lado direito da tela.

O ponto confuso sobre esse valor é que ele não inclui e não deve incluir o deslocamento permanenteLeft. Isso ocorre porque ele é usado para calcular o valor de viewLeft.

O viewLeft é relativo à origem do espaço de trabalho (embora em unidades de pixel). A origem é o canto superior esquerdo do espaço de trabalho (pelo menos quando está ativado). Ela é deslocada da parte superior esquerda do blocklyDiv para não ficar abaixo da caixa de ferramentas.

Quando o espaço de trabalho está ativado, a viewLeft e a origem do espaço de trabalho ficam no mesmo local X. À medida que a tela desliza para a direita abaixo da visualização, esse valor (scrollX) se torna mais positivo, e o viewLeft fica mais negativo em relação à origem do espaço de trabalho. Imagine a origem do espaço de trabalho como um ponto na tela deslizando para a direita enquanto ela se move.

Então, se o scrollX fosse incluir o setLeft, isso seria "unshift" a origem do espaço de trabalho. Isso significa que o viewLeft representaria a borda esquerda do blocklyDiv, em vez da borda esquerda do espaço de trabalho.

scrollY number

Deslocamento de rolagem vertical atual em unidades de pixel, em relação à origem do espaço de trabalho.

É útil pensar em uma visualização e em uma tela que se move por baixo dela. À medida que a tela se move para baixo, esse valor se torna mais positivo, e a visualização passa a ser "visualizada". na parte superior da tela. À medida que a tela sobe, esse valor se torna mais negativo, e a visualização passa a ser na parte inferior da tela.

Algo confuso sobre esse valor é que ele não inclui e não deve incluir o deslocamento permanenteTop. Isso ocorre porque ele é usado para calcular o valor viewTop.

O viewTop é relativo à origem do espaço de trabalho (embora em unidades de pixels). A origem é o canto superior esquerdo do espaço de trabalho (pelo menos quando está ativado). Ela é deslocada da parte superior esquerda do blocklyDiv para não ficar abaixo da caixa de ferramentas.

Quando o workspace está ativado, o viewTop e a origem do espaço de trabalho ficam no mesmo local Y. À medida que a tela desliza para a parte de baixo, esse valor (scrollY) se torna mais positivo e o viewTop se torna mais negativo em relação à origem do espaço de trabalho (imagem na origem do espaço de trabalho como um ponto na tela deslizando para baixo à medida que ela se move).

Portanto, se o scrollY fosse incluir o setTop, isso seria "unshift" a origem do espaço de trabalho. Isso significa que "viewTop" representa a borda de cima do blocklyDiv, e não a do espaço de trabalho.

startScrollX number Valor de rolagem horizontal quando a rolagem é iniciada em unidades de pixel.
startScrollY number Valor de rolagem vertical quando a rolagem é iniciada em unidades de pixel.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
lixeira Lixeira | nulo A lixeira do espaço de trabalho (se houver)
zoomControls_ ZoomControls | nulo

Métodos

Método Modificadores Descrição
addTopBlock(block) Adiciona um bloco à lista de blocos superiores.
addTopBoundedElement(element) Adiciona um elemento limitado à lista de elementos limitados superiores.
addTopComment(comment) Adiciona um comentário à lista dos principais comentários.
centerOnBlock(id, blockOnly) Role o espaço de trabalho para centralizar no bloco especificado. Se o bloco tiver outros blocos empilhados abaixo dele, o espaço de trabalho será centralizado na pilha, a menos que blockOnly seja verdadeiro.
cleanUp() Limpe o espaço de trabalho ordenando todos os blocos em uma coluna.
clear() Descarte todos os blocos no espaço de trabalho, com uma otimização para evitar redimensionamentos.
createDom(opt_backgroundClass, injectDiv) (em inglês) Crie os elementos DOM do espaço de trabalho.
createVariable(name, opt_type, opt_id) Cria uma nova variável com o nome informado. Atualize o menu suspenso para mostrar a nova variável imediatamente.
deleteVariableById(id) Exclui uma variável pelo ID transmitido. Atualize o menu suspenso para mostrar imediatamente que a variável foi excluída.
dispose() Descarte este espaço de trabalho. Desvincule todos os elementos do DOM para evitar vazamentos de memória.
getAllBlocks(ordered) Encontre todos os blocos no espaço de trabalho. Os blocos podem ser classificados por posição; de cima para baixo (com um leve viés LTR ou RTL).
getAudioManager() Baixe o gerenciador de áudio deste espaço de trabalho.
getBlockById(id) Encontre o bloco nesse espaço de trabalho com o ID especificado.
getBlocksBoundingBox() Calcule a caixa delimitadora dos blocos no espaço de trabalho. Sistema de coordenadas: coordenadas do espaço de trabalho.
getBubbleCanvas() Acesse o elemento SVG que forma a superfície da bolha.
getButtonCallback(key) Acessa a função de retorno de chamada associada a uma determinada chave, para cliques em botões e rótulos no menu suspenso.
getCanvas() Acesse o elemento SVG que forma a superfície de desenho.
getComponentManager() Extrai o gerenciador de componentes deste espaço de trabalho.
getCursor() O cursor deste espaço de trabalho.
getDragTarget(e) Retorna o destino de arrastar sobre o qual o evento do ponteiro está.
getFlyout(opt_own) Getter para o menu suspenso associado a esse espaço de trabalho. Esse menu suspenso pode pertencer à caixa de ferramentas ou ao espaço de trabalho, dependendo da configuração dela. Ele será nulo se não houver um menu suspenso.
getGrid() Extrai o objeto de grade deste espaço de trabalho ou retorna nulo se não houver nenhum.
getInverseScreenCTM() Getter para o CTM de tela invertida.
getLayerManager()
getMarkerManager() Acessar o gerenciador de marcadores deste espaço de trabalho.
getMetricsManager() Recebe o gerenciador de métricas deste espaço de trabalho.
getParentSvg() Extrai o elemento SVG que contém este espaço de trabalho. Observação: presumimos que ele só seja chamado depois que o espaço de trabalho tiver sido injetado no DOM.
getRenderer() Anexar o renderizador de bloco a este espaço de trabalho.
getRootWorkspace()
getScale() Consiga o fator de zoom do espaço de trabalho. Se o espaço de trabalho tiver um pai, chamamos o pai para obter a escala do espaço de trabalho.
getSvgGroup() Retorna o grupo SVG do espaço de trabalho.
getTheme() Acessa o objeto de tema do espaço de trabalho.
getToolbox() Getter para a caixa de ferramentas associada a esse espaço de trabalho, se houver.
getToolboxCategoryCallback(key) Receba a função de callback associada a uma determinada chave para preencher categorias personalizadas da caixa de ferramentas nesse espaço de trabalho.
getTopBlocks(ordered) Encontra os blocos de nível superior e os retorna. Os blocos podem ser classificados por posição; de cima para baixo (com um leve viés LTR ou RTL).
getTopBoundedElements() Encontra os elementos limitados de nível superior e os retorna.
getWidth() Retorna o deslocamento horizontal do espaço de trabalho. Projetado para compatibilidade LTR/RTL em XML.
hideChaff(onlyClosePopups) Fechar dicas, menus de contexto, seleções suspensas etc.
hideComponents(onlyClosePopups) Oculte todos os componentes que podem ser ocultados automaticamente (como o menu suspenso, a lixeira e os componentes registrados pelo usuário).
highlightBlock(id, opt_state) Destacar ou remover o destaque de um bloco no espaço de trabalho. O destaque de bloco é frequentemente usado para marcar visualmente os blocos que estão sendo executados.
isDraggable() Este espaço de trabalho é arrastável?
isDragging() O usuário está arrastando um bloco ou rolando o menu suspenso/espaço de trabalho?
isMovable()

Esse espaço de trabalho é móvel?

Isso significa que o usuário pode reposicionar as coordenadas X Y do espaço de trabalho usando a entrada. Isso pode acontecer pelas barras de rolagem, pela roda de rolagem, arrastando ou pelo zoom com a roda de rolagem ou fazendo gesto de pinça, já que o zoom é centralizado na posição do mouse. Isso não inclui o zoom com os controles de zoom, já que as coordenadas X Y são decididas programaticamente.

isMovableHorizontally() Este espaço de trabalho pode ser movido horizontalmente?
isMovableVertically() Este espaço de trabalho pode ser movido verticalmente?
isVisible() Getter para isVisible
markFocused() Marcar este espaço de trabalho como o espaço de trabalho principal em foco no momento.
moveDrag(e) Acompanhe a ação de arrastar um objeto neste espaço de trabalho.
newBlock(prototypeName, opt_id) Gere um bloco recém-criado.
newComment(id) Receba um comentário recém-criado.
recordDragTargets() Faça uma lista de todas as áreas excluídas desse espaço de trabalho.
refreshTheme() Atualizar todos os blocos no espaço de trabalho após uma atualização de tema.
registerButtonCallback(key, func) Registra uma função de callback associada a uma determinada chave, para cliques em botões e rótulos no menu suspenso. Por exemplo, um botão especificado pelo XML deve ser correspondido por uma chamada para registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) Registra uma função de callback associada a uma determinada chave, para preencher categorias personalizadas da caixa de ferramentas neste espaço de trabalho. Veja as categorias de variáveis e procedimentos como um exemplo.
removeButtonCallback(key) Remove um callback para um clique em um botão no menu suspenso.
removeToolboxCategoryCallback(key) Remova um callback para um clique no nome de uma categoria personalizada na caixa de ferramentas.
removeTopBlock(block) Remove um bloco da lista de blocos superiores.
removeTopBoundedElement(element) Remove um elemento limitado da lista de elementos limitados superiores.
removeTopComment(comment) Remove um comentário da lista de comentários principais.
renameVariableById(id, newName) Renomeie uma variável atualizando o nome dela no mapa de variáveis. Atualize o menu suspenso para mostrar a variável renomeada imediatamente.
render() Renderizar todos os blocos no espaço de trabalho.
resize() Redimensionar e reposicionar todo o espaço de trabalho do Chrome (caixa de ferramentas, lixeira, barras de rolagem etc.) Ele deve ser chamado quando algo muda e exige o recálculo das dimensões e posições da lixeira, do zoom, da caixa de ferramentas etc. (por exemplo, o redimensionamento da janela).
scrollCenter() Centralize o espaço de trabalho.
setResizeHandlerWrapper(handler) Salvar os dados do gerenciador de redimensionamento para que possamos excluí-los mais tarde.
setResizesEnabled(enabled) Atualize se o redimensionamento está ativado para este espaço de trabalho. Se ativado, o espaço de trabalho será redimensionado quando apropriado. Se desativado, o espaço de trabalho não será redimensionado até que seja reativado. Use para evitar o redimensionamento durante uma operação em lote, para melhorar o desempenho.
setScale(newScale) Defina o fator de zoom do espaço de trabalho.
setTheme(theme) Define o objeto de tema do espaço de trabalho. Se nenhum tema for transmitido, o padrão será Classic.
setVisible(isVisible) Alterna a visibilidade do espaço de trabalho. No momento, essa opção é destinada apenas ao espaço de trabalho principal.
startDrag(e, xy) Comece a rastrear um objeto arrastando neste espaço de trabalho.
translate(x, y) (link em inglês) Converta este espaço de trabalho para novas coordenadas.
updateInverseScreenCTM() Marque o CTM da tela inversa como suja.
updateToolbox(toolboxDef) Modifique a árvore de blocos na caixa de ferramentas atual.
zoom(x, y, amount) Aumenta ou diminui o zoom do espaço de trabalho em relação a/centralizado na coordenada especificada (x, y).
zoomCenter(type) Aplicando zoom nos blocos centralizados no centro da visualização, aumentando ou diminuindo o zoom.
zoomToFit() Aplique zoom aos blocos para que caibam no espaço de trabalho, se possível.