blockly > WorkspaceSvg

Classe WorkspaceSvg

Classe para um espaço de trabalho. Essa é uma área na tela com a opção de lixeira, barras de rolagem, balões e recursos de arrastar.

Signature:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Estende: Workspace

Implementações: IASTNodeLocationSvg

Construtores

Construtor Modificadores Descrição
(construtor)(options) Constrói uma nova instância da classe WorkspaceSvg.

Propriedades

Propriedade Modificadores Tipo Descrição
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | null 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 criado no espaço de trabalho.
keyboardAccessibilityMode boolean Verdadeiro se o modo de acessibilidade do teclado estiver ativado. Caso contrário, será falso.
renderizado boolean O status de renderização de um espaço de trabalho SVG. Retorna false para espaços de trabalho headless 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 movendo-se abaixo dela. Conforme a tela se move para a direita, esse valor se torna mais positivo, e a visualização passa a "ver" o lado esquerdo da tela. Conforme a tela se move para a esquerda, esse valor fica mais negativo, e a visualização agora "vê" o lado direito da tela.

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

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

Quando o workspace está ativado, a origem do viewLeft e do workspace estão no mesmo local X. À medida que a tela desliza para a direita abaixo da visualização, esse valor (scrollX) se torna mais positivo, e a viewLeft se torna mais negativa 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 à medida que a tela se move).

Portanto, se o scrollX incluísse aAbsoluteLeft, isso "des deslocaria" a origem do espaço de trabalho. Isso significa que viewLeft representa a borda esquerda do blocklyDiv, em vez de borda esquerda do espaço de trabalho.

scrollY number

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

É útil pensar em uma visualização e em uma tela movendo-se abaixo dela. Conforme a tela se move para baixo, esse valor se torna mais positivo, e a visualização agora "vê" a parte superior da tela. Conforme a tela se move para cima, o valor fica mais negativo, e a visualização "vê" a parte de baixo dela.

O ponto confuso sobre esse valor é que ele não inclui e não deve incluir o deslocamento absolutoTop. 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 do espaço de trabalho é o canto superior esquerdo do espaço de trabalho (pelo menos quando está ativado). Ele é deslocado da parte superior esquerda do blocklyDiv para não ficar abaixo da caixa de ferramentas.

Quando o espaço de trabalho está ativado, a origem 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 fica 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 a tela se move).

Portanto, se o scrollY incluísse oAbsoluteTop, isso "des deslocaria" a origem do espaço de trabalho. Isso significa que o viewTop representa a borda superior do blocklyDiv, em vez de a borda superior do espaço de trabalho.

startScrollX number Valor de rolagem horizontal ao rolar a rolagem em unidades de pixel.
startScrollY number Valor de rolagem vertical ao rolar 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 principais.
addTopBoundedElement(element) Adiciona um elemento limitado à lista de elementos limitados superior.
addTopComment(comment) Adiciona um comentário à lista de comentários principais.
centerOnBlock(id, blockOnly) Role o espaço de trabalho para centralizar o 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 "true".
cleanUp() (em inglês) 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, injeçãoDiv) Crie os elementos DOM do workspace.
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) Exclua uma variável pelo ID transmitido. Atualize o menu suspenso para mostrar imediatamente que a variável foi excluída.
dispose() (em inglês) Descartar este espaço de trabalho. Desvincule-os de todos os elementos DOM para evitar vazamentos de memória.
getAllBlocks(ordered) Encontrar todos os blocos no espaço de trabalho. Os blocos são classificados opcionalmente por posição; de cima para baixo (com leve viés LTR ou RTL).
getAudioManager() Instale o gerenciador de áudio deste espaço de trabalho.
getBlockById(id) (em inglês) Encontre o bloco neste espaço de trabalho com o ID especificado.
getBlocksBoundingBox(). Calcular a caixa delimitadora para os 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 callback 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() Recebe o gerenciador de componentes deste espaço de trabalho.
getCursor() O cursor desse espaço de trabalho.
getDragTarget(e) Retorna o destino de arrastar o evento do ponteiro.
getFlyout(opt_own) Getter para o menu suspenso associado a esse espaço de trabalho. Esse menu suspenso pode ser de propriedade da caixa de ferramentas ou do espaço de trabalho, dependendo da configuração dela. Será nulo se não houver menu suspenso.
getGrid() Receba o objeto de grade para esse espaço de trabalho ou nulo se não houver nenhum.
getInverseScreenCTM() (link em inglês) Getter para o CTM de tela invertida.
getMarkerManager() Acesse o gerenciador de marcadores deste espaço de trabalho.
getMetricsManager() Recebe o gerenciador de métricas deste espaço de trabalho.
getParentSvg() (em inglês) Acesse o elemento SVG que contém esse espaço de trabalho. Observação: presumimos que isso só seja chamado após o espaço de trabalho ter sido injetado no DOM.
getRenderer() Anexe o renderizador de blocos a este espaço de trabalho.
getRootWorkspace()
getScale() Descubra o fator de zoom do espaço de trabalho. Se o espaço de trabalho tiver um pai, chamaremos o pai para obter a escala do espaço de trabalho.
getSvgGroup() Retorna o grupo SVG do espaço de trabalho.
getTheme() Acesse 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 determinada chave para preencher categorias de caixa de ferramentas personalizadas nesse espaço de trabalho.
getTopBlocks(ordered) Encontra os blocos de nível superior e os retorna. Os blocos são classificados opcionalmente por posição; de cima para baixo (com 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. Destinado à compatibilidade LTR/RTL em XML.
hideChaff(onlyClosePopups) Fechar dicas de ferramentas, menus de contexto, seleções de menus suspensos etc.
hideComponents(onlyClosePopups) Oculte todos os componentes que podem ser ocultados automaticamente (como menu suspenso, lixeira e componentes registrados pelo usuário).
highlightBlock(id, opt_state) Destaque ou remova o destaque de um bloco no espaço de trabalho. O destaque de blocos é frequentemente usado para marcar visualmente os blocos em execução no momento.
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()

Este 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 ser feito por meio de barras de rolagem, da roda de rolagem, de arrastar ou do zoom com a roda de rolagem ou de pinça (já que o zoom está centralizado na posição do mouse). Isso não inclui a aplicação de zoom com os controles de zoom, já que as coordenadas X Y são decididas de forma programática.

isMovableHorizontally() Este espaço de trabalho é móvel horizontal?
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) Monitore a ação de arrastar de um objeto neste espaço de trabalho.
newBlock(prototypeName, opt_id) Receba um bloco recém-criado.
paste(state) Cola o bloco fornecido ou o comentário do espaço de trabalho no espaço de trabalho. Não verifica se há capacidade restante para o objeto. Isso precisa ser feito antes de chamar esse método.
recordDragTargets() Faça uma lista de todas as áreas de exclusão 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) Registre uma função de callback associada a uma determinada chave para preencher categorias de caixa de ferramentas personalizadas nesse espaço de trabalho. Confira as categorias de variáveis e procedimentos como exemplo.
removeButtonCallback(key) Remova 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 principais.
removeTopBoundedElement(element) Remove um elemento limitado da lista de elementos limitados.
removeTopComment(comment) Remove um comentário da lista de comentários principais.
renameVariableById(id, newName) (link em inglês) 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() (link em inglês) Renderize 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.) 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, redimensionamento da janela).
scrollCenter() Centralize o espaço de trabalho.
setResizeHandlerWrapper(handler) Salve os dados do gerenciador de redimensionamento para que possamos excluí-los mais tarde ao descartar.
setResizesEnabled(enabled) Atualize se este espaço de trabalho tem redimensionamentos ativados. Se ativado, o espaço de trabalho será redimensionado quando apropriado. Se desativado, o espaço de trabalho não será redimensionado até que ele 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) Defina o objeto de tema do espaço de trabalho. Se nenhum tema for transmitido, o padrão será o tema Classic.
setVisible(isVisible) Alterna a visibilidade do espaço de trabalho. No momento, destinado apenas ao espaço de trabalho principal.
startDrag(e, xy) Começar a rastrear a ação de arrastar um objeto neste espaço de trabalho.
translate(x, y) Traduzir este espaço de trabalho para novas coordenadas.
updateInverseScreenCTM(). Marque o CTM da tela inversa como sujo.
updateToolbox(toolboxDef) Modifique a árvore de blocos na caixa de ferramentas existente.
zoom(x, y, amount) Aumenta ou diminui o zoom do espaço de trabalho em relação à/centralizada na coordenada (x, y) especificada.
zoomCenter(type) Aumentar ou diminuir o zoom nos blocos centralizados no centro da visualização.
zoomToFit() (link em inglês) Aplique zoom aos blocos para ajustá-los ao espaço de trabalho, se possível.