blockly > WorkspaceSvg

Clase WorkspaceSvg

Clase para un espacio de trabajo. Se trata de un área en pantalla con la opción de papelera, barras de desplazamiento, burbujas y arrastre.

Signature:

export declare class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg 

Extiende: Workspace

Implementaciones: IASTNodeLocationSvg

Constructores

Constructor Modificadores Descripción
(constructor)(opciones) Construye una instancia nueva de la clase WorkspaceSvg.

Propiedades

Propiedad Modificadores Tipo Descripción
configureContextMenu ((menuOptions: ContextMenuOption[], e: Event) => void) | nulo Los desarrolladores pueden definir esta función para agregar opciones de menú personalizado al menú contextual del lugar de trabajo o editar el conjunto de opciones de menú creado por el lugar de trabajo.
keyboardAccessibilityMode boolean Es verdadero si el modo de accesibilidad del teclado está activado. De lo contrario, es falso.
renderizado boolean El estado de renderización de un lugar de trabajo SVG. Muestra false para lugares de trabajo sin interfaz gráfica y verdadero para instancias de WorkspaceSvg.
escala número Escala actual.
barra de desplazamiento ScrollbarPair | nulo Barras de desplazamiento de este lugar de trabajo, si las hay.
scrollX número

Desplazamiento horizontal actual en unidades de píxeles, en relación con el origen del lugar de trabajo.

Es útil pensar en una vista y en un lienzo que se mueva debajo de esa vista. A medida que el lienzo se mueve hacia la derecha, este valor se vuelve más positivo, y la vista ahora "ve" el lado izquierdo del lienzo. A medida que el lienzo se mueve hacia la izquierda, este valor se vuelve más negativo, y la vista ahora "ve" el lado derecho del lienzo.

Lo confuso acerca de este valor es que no incluye y no debe incluir el desplazamiento absolutoLeft. Esto se debe a que se usa para calcular el valor viewLeft.

El campo viewLeft es relativo al origen del lugar de trabajo (aunque en unidades de píxeles). El origen del lugar de trabajo es la esquina superior izquierda del lugar de trabajo (al menos cuando está habilitado). Se desplaza desde la parte superior izquierda de blocklyDiv para no estar debajo de la caja de herramientas.

Cuando el lugar de trabajo está habilitado, el origen del espacio de trabajo y viewLeft se encuentran en la misma ubicación X. A medida que el lienzo se desliza hacia la derecha, debajo de la vista, este valor (scrollX) se vuelve más positivo, y la viewLeft se vuelve más negativa en relación con el origen del espacio de trabajo (imagina el origen del espacio de trabajo como un punto en el lienzo que se desliza hacia la derecha a medida que el lienzo se mueve).

Por lo tanto, si el desplazamientoX incluyera la forma absoluta, esto sería "desplazamiento" el origen del lugar de trabajo. Esto significa que viewLeft representaría el borde izquierdo del blocklyDiv, en lugar del borde izquierdo del espacio de trabajo.

scrollY número

Desplazamiento vertical actual en unidades de píxeles, en relación con el origen del lugar de trabajo.

Es útil pensar en una vista y en un lienzo que se mueva debajo de esa vista. A medida que el lienzo se mueve hacia abajo, este valor se vuelve más positivo, y la vista ahora "ve" la parte superior del lienzo. A medida que el lienzo se mueve hacia arriba, este valor se vuelve más negativo, y la vista "ve". la parte inferior del lienzo.

El aspecto confuso de este valor es que no incluye el desplazamiento absoluta, ni debe incluirlo. Esto se debe a que se usa para calcular el valor de viewTop.

viewTop es relativo al origen del lugar de trabajo (aunque en unidades de píxeles). El origen del lugar de trabajo es la esquina superior izquierda del lugar de trabajo (al menos cuando está habilitado). Se desplaza desde la parte superior izquierda de blocklyDiv para no estar debajo de la caja de herramientas.

Cuando el lugar de trabajo está habilitado, el origen del espacio de trabajo y viewTop se encuentran en la misma ubicación Y. A medida que el lienzo se desliza hacia la parte inferior, este valor (scrollY) se vuelve más positivo, y viewTop se vuelve más negativo en relación con el origen del espacio de trabajo (imagen en el origen del espacio de trabajo como un punto en el lienzo que se desliza hacia abajo a medida que el lienzo se mueve).

Entonces, si el desplazamientoY incluyera el valor absoluto, esto sería "invisible" el origen del lugar de trabajo. Esto significa que viewTop representaría el borde superior de blocklyDiv, en lugar del borde superior del espacio de trabajo.

startScrollX número Es el valor de desplazamiento horizontal cuando se inicia el desplazamiento en unidades de píxeles.
startScrollY número Valor de desplazamiento vertical cuando se inicia el desplazamiento en unidades de píxeles.
svgBackground_ SVGElement
svgBlockCanvas_ SVGElement
svgBubbleCanvas_ SVGElement
svgGroup_ SVGElement
themeManager_ protected ThemeManager
papelera Papelera | nulo La papelera del espacio de trabajo (si la hay).
zoomControls_ ZoomControls | nulo

Métodos

Método Modificadores Descripción
addTopBlock(block) Agrega un bloque a la lista de bloques principales.
addTopBoundedElement(element) Agrega un elemento delimitado a la lista de elementos delimitados principales.
addTopComment(comment) Agrega un comentario a la lista de comentarios principales.
centerOnBlock(id, blockOnly) Desplaza el lugar de trabajo para centrarlo en el bloque determinado. Si el bloque tiene otros bloques apilados debajo, el espacio de trabajo se centrará en la pila, a menos que blockOnly sea verdadero.
cleanUp() Ordena todos los bloques de una columna para limpiar el espacio de trabajo.
clear() Elimina todos los bloques del lugar de trabajo con una optimización para evitar que se modifique el tamaño.
createDom(opt_backgroundClass, injectDiv) Crea los elementos del DOM del espacio de trabajo.
createVariable(name, opt_type, opt_id) Crea una variable nueva con ese nombre. Actualiza el control flotante para mostrar la nueva variable de inmediato.
deleteVariableById(id) Borra una variable mediante el ID que se pasó. Actualiza el control flotante para mostrar de inmediato que se borró la variable.
dispose() Deshazte de este lugar de trabajo. Desvincula todos los elementos del DOM para evitar fugas de memoria.
getAllBlocks(ordered) Buscar todos los bloques en el espacio de trabajo. De manera opcional, los bloques se ordenan por posición. de arriba abajo (con un leve sesgo de izquierda a derecha o de derecha a izquierda).
getAudioManager() Obtén el administrador de audio para este lugar de trabajo.
getBlockById(id) Busca el bloque en este lugar de trabajo con el ID especificado.
getBlocksBoundingBox() Calcula el cuadro delimitador para los bloques en el lugar de trabajo. Sistema de coordenadas: coordenadas del lugar de trabajo.
getBubbleCanvas() Obtén el elemento SVG que forma la superficie de la burbuja.
getButtonCallback(key) Obtiene la función de devolución de llamada asociada con una tecla determinada para los clics en los botones y las etiquetas del menú flotante.
getCanvas() Obtén el elemento SVG que forma la superficie de dibujo.
getComponentManager() Obtiene el administrador de componentes para este lugar de trabajo.
getCursor() El cursor para este lugar de trabajo.
getDragTarget(e) Muestra el objetivo de arrastre sobre el que pasa el evento del puntero.
getFlyout(opt_own) Es el método get para el menú flotante asociado a este lugar de trabajo. Este menú flotante puede ser propiedad de la caja de herramientas o del espacio de trabajo, según la configuración de la caja de herramientas. Será nulo si no hay valor flotante.
getGrid() Obtén el objeto de cuadrícula para este lugar de trabajo o ingresa un valor nulo si no hay ninguno.
getInverseScreenCTM() Método get para la CTM de pantalla invertida.
getLayerManager()
getMarkerManager() Obtén el administrador de marcadores para este lugar de trabajo.
getMetricsManager() Obtiene el administrador de métricas para este lugar de trabajo.
getParentSvg() Obtén el elemento SVG que contiene este lugar de trabajo. Nota: Suponemos que solo se llama a este método después de que se haya insertado el espacio de trabajo en el DOM.
getRenderer() Obtén el procesador de bloques adjuntado a este lugar de trabajo.
getRootWorkspace()
getScale() Obtén el factor de zoom del lugar de trabajo. Si el lugar de trabajo tiene un elemento superior, lo llamamos para obtener la escala del lugar de trabajo.
getSvgGroup() Muestra el grupo de SVG para el lugar de trabajo.
getTheme() Obtén el objeto de tema del espacio de trabajo.
getToolbox() Es el método get para la caja de herramientas asociada a este lugar de trabajo, si existe.
getToolboxCategoryCallback(key) Obtén la función de devolución de llamada asociada con una clave determinada para propagar categorías personalizadas de la caja de herramientas en este lugar de trabajo.
getTopBlocks(ordered) Encuentra los bloques de nivel superior y los muestra. De manera opcional, los bloques se ordenan por posición. de arriba abajo (con un leve sesgo de izquierda a derecha o de derecha a izquierda).
getTopBoundedElements() Busca los elementos delimitados de nivel superior y los muestra.
getWidth() Muestra el desplazamiento horizontal del lugar de trabajo. Diseñado para brindar compatibilidad con LTR/RTL en XML.
hideChaff(onlyClosePopups) Cerrar información sobre herramientas, menús contextuales, selecciones desplegables, etcétera
hideComponents(onlyClosePopups) Oculta los componentes que se pueden ocultar automáticamente (como el menú flotante, la papelera y cualquier componente registrado por el usuario).
highlightBlock(id, opt_state) Destaca o desmarca un bloque en el lugar de trabajo. El resaltado de bloques se suele usar para marcar visualmente los bloques que se están ejecutando en el momento.
isDraggable() ¿Este espacio de trabajo es arrastrable?
isDragging() ¿Actualmente el usuario arrastra un bloque o se desplaza por el menú flotante o el espacio de trabajo?
isMovable()

¿Este lugar de trabajo se puede mover?

Esto significa que el usuario puede cambiar la posición de las coordenadas X Y del lugar de trabajo a través de una entrada. Esto se puede realizar mediante barras de desplazamiento, la rueda de desplazamiento, arrastrando o haciendo zoom con la rueda de desplazamiento o pellizcar (dado que el zoom se centra en la posición del mouse). Esto no incluye el zoom con los controles de zoom, ya que las coordenadas X Y se deciden de forma programática.

isMovableHorizontally() ¿Este lugar de trabajo se puede mover de forma horizontal?
isMovableVertically() ¿Este espacio de trabajo se puede mover verticalmente?
isVisible() Método get para isVisible
markFocused() Marca este lugar de trabajo como el principal enfocado actualmente.
moveDrag(e) Realiza el seguimiento del arrastre de un objeto en este lugar de trabajo.
newBlock(prototypeName, opt_id) Obtén un bloque recién creado.
newComment(id) Obtener un comentario recién creado
recordDragTargets() Haz una lista de todas las áreas de eliminación de este lugar de trabajo.
refreshTheme() Actualiza todos los bloques del lugar de trabajo después de actualizar el tema.
registerButtonCallback(key, func) Registra una función de devolución de llamada asociada con una tecla determinada para los clics en los botones y las etiquetas del menú flotante. Por ejemplo, un botón especificado por el XML debe coincidir con una llamada a registerButtonCallback("CREATE_VARIABLE", yourCallbackFunction).
registerToolboxCategoryCallback(key, func) Registra una función de devolución de llamada asociada con una clave determinada para propagar categorías personalizadas de la caja de herramientas en este lugar de trabajo. Consulta las categorías de variables y procedimientos como ejemplo.
removeButtonCallback(key) Quita una devolución de llamada para un clic en un botón del menú flotante.
removeToolboxCategoryCallback(key) Quita una devolución de llamada para un clic en el nombre de una categoría personalizada en la caja de herramientas.
removeTopBlock(block) Quita un bloque de la lista de bloques principales.
removeTopBoundedElement(element) Quita un elemento delimitado de la lista de elementos delimitados principales.
removeTopComment(comment) Elimina un comentario de la lista de comentarios principales.
renameVariableById(id, newName) Para cambiar el nombre de una variable, actualiza su nombre en el mapa de variables. Actualiza el control flotante para mostrar la variable a la que le cambiaste el nombre de inmediato.
render() Renderiza todos los bloques en el lugar de trabajo.
resize() Cambiar el tamaño y la posición de todo el espacio de trabajo de Chrome (caja de herramientas, papelera, barras de desplazamiento, etcétera) Se debe llamar a este método cuando algo cambia y requiere volver a calcular las dimensiones y posiciones de la papelera, el zoom, la caja de herramientas, etc. (p.ej., el cambio de tamaño de la ventana).
scrollCenter() Centra el lugar de trabajo.
setResizeHandlerWrapper(handler) Guarda los datos del controlador de cambio de tamaño para que podamos borrarlos más adelante en la eliminación.
setResizesEnabled(enabled) Actualiza si este lugar de trabajo tiene habilitados los cambios de tamaño. Si se habilita, el espacio de trabajo cambiará de tamaño cuando corresponda. Si se inhabilita, el espacio de trabajo no cambiará de tamaño hasta que se vuelva a habilitar. Se usa para evitar cambiar el tamaño durante una operación por lotes y mejorar el rendimiento.
setScale(newScale) Establece el factor de zoom del lugar de trabajo.
setTheme(theme) Configura el objeto de tema del espacio de trabajo. Si no se pasa ningún tema, se usará el tema Classic de forma predeterminada.
setVisible(isVisible) Activa o desactiva la visibilidad del lugar de trabajo. Actualmente, solo está diseñado para el lugar de trabajo principal.
startDrag(e, xy) Comienza a realizar el seguimiento del arrastre de un objeto en este lugar de trabajo.
traducir(x, y) Traducir este espacio de trabajo a nuevas coordenadas.
updateInverseScreenCTM() Marca la CTM de la pantalla inversa como sucia.
updateToolbox(toolboxDef) Modifica el árbol de bloques en la caja de herramientas existente.
zoom(x, y, cantidad) Acerca o aleja el lugar de trabajo en relación con la coordenada (x, y) determinada o centrada en ella.
zoomCenter(type) Acercamiento o alejamiento de los bloques centrados en el centro de la vista.
zoomToFit() Acerca los bloques para que quepan en el lugar de trabajo si es posible.