4D v16.3

SVG SET ATTRIBUTE

ホーム

 
4D v16.3
SVG
SVG SET ATTRIBUTE

SVG SET ATTRIBUTE 


 

SVG SET ATTRIBUTE ( {* ;} pictureObject ; element_ID ; attrName ; attribValue {; attrName2 ; attribValue2 ; ... ; attrNameN ; attribValueN} {; *}) 
引数   説明
演算子 in 指定時: pictureObjectはオブジェクト名 (文字) 省略時: pictureObjectは変数
pictureObject  ピクチャー in オブジェクト名 (* 指定時) または 変数 またはフィールド(* 省略時)
element_ID  テキスト in 1つ以上の属性を設定する要素のID
attrName  文字 in 指定する属性
attribValue  文字, 倍長整数 in 属性の新しい値
演算子 in 指定時 = SVG画像の内部DOMツリーを更新 (変数のみ)

説明   

SVG SET ATTRIBUTEコマンドは 表示されている画像のSVG描画ツリーまたは画像の内部DOMツリー中で、既存の属性の値を更新するために使用します。

オプションの * 引数を渡すと、pictureObject引数はオブジェクト名 (文字) です。この場合、コマンドはオブジェクトにアタッチされたイメージのパラメーターに適用されます (パラメーターおよびオブジェクトの表示されたイメージは、少なくとも一回SVG SET ATTRIBUTEが呼び出されたときのみ作成されることに留意してください)。* 引数を渡さないと、pictureObject引数は変数またはフィールドです。従って文字ではなく変数参照 (変数オブジェクトのみ) またはフィールド参照を渡します。この場合コマンドは、その変数を使用するすべてのオブジェクトに表示されたイメージに適用されます。

デフォルトでは、このコマンドにより行われる更新は描画された画像にのみ適用されます。更新はデータソース (内部DOMツリー) に格納されず、ピクチャーがプログラムで消去されたりフォームが閉じられたりすると、その更新は失われます。しかしpictureObject引数が変数を参照している場合、この更新を画像の内部DOMツリーに転送できます。これを行うには最後の引数として * を渡します。これにより更新をその場で行うことができます。

注:

  • 内部DOMツリーへの更新の転送は、pictureObjectがオブジェクトを参照している場合には行えません。
  • 更新の転送を可能にするためには、SVG変数が (DOM EXPORT TO VARを使用して) DOMドキュメントから作成されていなければなりません。SVG変数がファイルから作成されている場合、2番目の * 引数を渡すと、データソースには更新可能なDOMドキュメントが含まれないため、コマンドはなにも行わずエラーを生成します。
  • SVG画像のデータソースを変更するには4Dが提供するXML DOMMissingRefコマンドも使用することができます。

element_ID 引数は、更新したい属性を持つ要素のID ("id"または"xml:id"属性) を指定するために使用します。

attribNameattribValue引数にはそれぞれ、書き込む属性と値を (変数、フィールド、またはリテラル値で) 渡します。必要なだけ属性/値に組を渡せます。

SVG SET ATTRIBUTEコマンドは、'fill'、'opacity'、'font-family'などほとんどのSVG属性を (追加や削除でなく) 変更するために使用します。SVG属性の完全な説明は、インターネット上のドキュメント (例: http://www.w3.org/TR/SVG11/attindex.html) などを参照してください。表示されるイメージは即座に更新されます。継承されるスタイルの場合、更新は子要素にも適用されます。

技術的な理由で、特定の要素や特定の属性は更新できません。以下の表は更新可能および不可能な要素、さらには変更不可能な属性のリストです:

属性を更新可能な要素

svg制限:
- "width" と "height" は変更できません。(1)
- "viewBox" は、"width" と "height"がオリジナルのドキュメントで指定されているときのみ変更できます。
g
defs
use
filter制限: 子要素 fe_xxx へ変更できません。
circle
ellipse
line
polyline
polygon
path
rect
text, tspan, textArea"4d-text" 属性を使用して"text"、"tspan"、および"textArea"要素のテキストを更新します (例題参照)。

属性を変更できない要素

linearGradient, radialGradient, Stop, solidColor, marker, symbol, clipPath, feで始まるフィルターと要素, style, patternこのグループは参照可能または参照可能な要素に含有可能なすべての要素を示します。つまりこれは、例えばグラデーションの属性を再定義することはできないということを意味します (しかし使用するグラデーションを変更することはできます)。同様に黒のマーカーを赤のマーカーに変更するには、SVGドキュメント内で両マーカー (1つは黒でもう1つは赤) を定義し、どちらかを選択する必要があることを示します。また例えば親要素がシンボルまたはマーカー要素であるとき、四角の色を変えることもできません。

変更できない属性

id or xml:id
lang or xml:lang
class or xml:class
width, height'svg'要素のの属性のみ(1)

(1) これらの属性は、それらが結果のイメージを定義および構築するため変更できません。 svg要素のwidthおよびheight属性は 4D中で初期のサイズを決定し、ピクチャ作成後このサイズは一定でなければなりません (しかしながら4DのTRANSFORM PICTUREコマンドを使用して結果のピクチャのサイズを変更できます。

SVG GET ATTRIBUTEコマンドの説明ではアニメーション用に予約された4D属性のリストを参照できます。

サポートされていない要素の属性やその子要素を更新しようとすると、コマンドはなにも行わず、エラーが生成されます。

コマンドがフォームのコンテキストで実行されないか無効なpictureObjectが渡された場合、OK 変数に0が設定されます。コマンドが正しく実行されると1が設定されます。

例題  

テキスト型の要素の内容を更新する:

 SVG SET ATTRIBUTE(*;picture_object_name;text_element_ID;"4d-text";"This is a text")

Note: 衝突の恐れなしにCSSスタイルシート内で属性を使用するため、名前空間がありません。



参照 

SVG GET ATTRIBUTE

 
プロパティ 

プロダクト: 4D
テーマ: SVG
番号: 1055

このコマンドはOKシステム変数を更新します

 
履歴 

初出: 4D v12
変更: 4D v12.3

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)