Saltar para o conteúdo principal
Versão: Próximo

SVG SET ATTRIBUTE

SVG SET ATTRIBUTE ( {* ;} objetoImagem ; id_Elemento ; nomeAtrib ; valorAtributo {; nomeAtrib2 ; valorAtributo2 ; ... ; nomeAtribN ; valorAtributoN} {; *})

ParâmetroTipoDescrição
*Operador🡒Se especificado, objImagem é um nome objeto (string). Se omitido, objImagem é uma variável
objetoImagemImagem🡒Nome de objeto (se * for especificado) ou variável ou campo (se * for otimido)
id_ElementoTexto🡒ID do elemento onde um ou mais atributos são estabelecidos
nomeAtribString🡒Atributo a estabelecer
valorAtributoString, Inteiro longo🡒Novo valor do atributo
*Operador🡒Se passado = modifica a própria imagem SVG

Descrição

O comando SVG SET ATTRIBUTE é usado para modificar o valor de um atributo existente na árvore de renderização SVG de uma imagem exibida ou na árvore interna DOM de uma imagem.

Se passar o parâmetro opcional *, indica que o parâmetro objImagem é um nome de objeto (string). Neste caso, o comando aplica aos parâmetros da imagem renderizada anexada ao objeto (note que os parâmetros, e portanto a imagem renderizada do objeto, são criados apenas se o comando SVG SET ATTRIBUTE for chamado pelo menos uma vez).
Se não passar o parâmetro *, indica que o parâmetro objImagem é uma variável ou campo. Portanto, passa uma variável (apenas variável objeto) ou referência de campo ao invés de uma string. Neste caso, o comando se aplica às imagens renderizadas de todos os objetos que usam a variável ou o campo.

Como padrão, este comando modifica apenas a imagem renderizada nos objetos formulário correspondentes a objImagem no contexto do formulário, e não faz nada se nenhum objeto o usar. Se passar o segundo * como último parâmetro, o comando modifica a própria imagem SVG, mesmo se nenhum objeto formulário o usar. Neste caso, todos os objetos formulário existentes ou futuros que usam a imagem SVG serão modificados, em todos os contextos.

Notas:

  • O último * não serve pra nada se o parâmetro objImagem referenciar um objeto formulário.
  • Para mudar a data source de uma imagem SVG, também pode usar os comandos XML DOM ou 4D SVG component fornecido por 4D.

O parâmetro element_ID é usado para especificar o ID (atributo "id" ou "xml:id") do elemento cujos atributos quer modificar.

Nos parâmetros attribName e attribValue, passe, respectivamente, o atributo a estabelecer e seu valor (como variáveis, campos ou valores literais). Pode passar quantos pares de atributo/valor quantos quiser.

O comando SVG SET ATTRIBUTE é usado para modificar (mas não para adicionar ou apagar) a maioria dos atributos SVG, como por exemplo, 'fill', 'opacity', 'font-family', e assim por diante. Para uma definição completa dos atributos SVG, veja os documentos de referência disponíveis na Internet, por exemplo: http://www.w3.org/TR/SVG11/attindex.html. A imagem renderizada é atualizada imediatamente, as modificações são transferidas para os elementos filhos para estilos herdados.

Note que por razões técnicas, os atributos de certos elementos, e também certos atributos, não podem ser modificados. A tabela abaixo lista os elementos que podem ou não ser modificados, assim como os atributos que não podem ser mudados.

Elementos cujos atributos podem ser modificados

svgRestrições :
- "width" e "height" não podem ser modificados(1)
- "viewBox" só pode ser modificado se "width" e "height" forem especificados no documento original
g
defs
use
filterRestrição: elementos filhos fe_xxx não podem ser modificados
circle
ellipse
line
polyline
polygon
path
rect
text, tspan, textAreaO atributo especifico specific "4d-text" é usado para modificar o texto de um elemento "text", "tspan" ou "textArea" (ver exemplo)
Image

Elementos cujos atributos não podem ser modificados

linearGradient, radialGradient, Stop, solidColor, marker, symbol, clipPath, filter e elementos que começam por fe, style, patternEste grupo designa todos os elementos que podem ser referenciados ou contidos em um elemento que pode ser referenciado. Isso significa que não é possível, por exemplo, redefinir os atributos de um gradiente (mas é possível mudar o gradiente usado). Da mesma forma, para mudar um marcador de cor preto para um marcador velho, precisa definir ambos marcadores no documento SVG (um preto e outro vermelho) e selecionar um deles. Não é possível por exemplo modificar a cor do retângulo se seu objeto pai for um símbolo ou elemento marker

Atributos que não podem ser modificados

id ou xml:id
lang ou xml:lang
class ou xml:class
width, heightApenas em relação aos atributos do elemento 'svg'(1)

(1) Estes atributos não podem ser modificados porque eles definem e estruturam a imagem resultante. Os atributos width e height do elemento svg são usados para definir as dimensões iniciais da imagem em 4D e estas dimensões devem se manter constantes depois que a imagem for criada (é possível entretanto modificar as dimensões da imagem resultado com o comando 4DTRANSFORM PICTURE).

Também pode referenciar a descrição do comando SVG GET ATTRIBUTE para ver a lista de atributos 4D que são reservados e dedicados à animação

Se tentar modificar o atributo de um elemento que não for compatível ou um de seus elementos filhos, o comando não faz nada e nenhum erro é gerado

Se o comando não for executado no contexto de um formulário ou se um objImagem for passado, a variável OK é estabelecida em 0. Se o comando for executado corretamente, é estabelecido em 1 .

Exemplo

Modificação do conteúdo de um elemento de tipo texto:

 SVG SET ATTRIBUTE(*;picture_object_name;text_element_ID;"4d-text";"Este é um texto")

Nota: não há nenhum namespace para que o atributo possa ser utilizado em uma folha de estilo CSS sem risco de conflito.

Ver também

SVG GET ATTRIBUTE