SVG SET ATTRIBUTE
SVG SET ATTRIBUTE ( {* ;} pictureObject ; element_ID ; attrName ; attribValue {; attrName2 ; attribValue2 ; ... ; attrNameN ; attribValueN} {; *})
引数 | 型 | 説明 | |
---|---|---|---|
* | 演算子 | → | 指定時: pictureObjectはオブジェクト名 (文字) 省略時: pictureObjectは変数 |
pictureObject | Picture | → | オブジェクト名 (* 指定時) または 変数 またはフィールド(* 省略時) |
element_ID | Text | → | 1つ以上の属性を設定する要素のID |
attrName | Text | → | 指定する属性 |
attribValue | Text, Integer | → | 属性の新しい値 |
* | 演算子 | → | 指定時 = SVG画像の内部DOMツリーを更新 (変数のみ) |
説明
SVG SET ATTRIBUTEコマンドは 表示されている画像のSVG描画ツリーまたは画像の内部DOMツリー中で、既存の属性の値を更新するために使用します。
オプションの * 引数を渡すと、pictureObject引数はオブジェクト名 (文字) です。この場合、コマンドはオブジェクトにアタッチされたイメージのパラメーターに適用されます (パラメーターおよびオブジェクトの表示されたイメージは、少なくとも一回SVG SET ATTRIBUTEが呼び出されたときのみ作成されることに留意してください)。* 引数を渡さないと、pictureObject引数は変数またはフィールドです。従って文字ではなく変数参照 (変数オブジェクトのみ) またはフィールド参照を渡します。この場合コマンドは、その変数を使用するすべてのオブ ジェクトに表示されたイメージに適用されます。
デフォルトでは、このコマンドはフォームコンテキスト内でpictureObject 引数に合致したフォームオブジェクト内の描画された画像のみ変更し、どのオブジェクトもその属性を使用していなければ何もしません。2つめの * を最後の引数として渡した場合、コマンドは(例えばフォームオブジェクトがどれも使用していなかったとしても)SVG ピクチャー自身を変更します。この場合、既存の、あるいは将来のフォームオブジェクトでSVG ピクチャーを使用するものは、全てのコンテキストにおいて変更されます。
注:
- 最後の * 引数は、pictureObject 引数がフォームオブジェクトを参照している場合には意味を持ちません。
- SVG画像のデータソースを変更するには4Dが提供するXML DOMや4D SVGコマンドも使用することができます。
element_ID 引数は、更新したい属性を持つ要素のID ("id"または"xml:id"属性) を指定するために使用します。
attribNameとattribValue引数にはそれぞれ、書き込む属性と値を (変数、フィールド、またはリテラル値で) 渡します。必要なだけ属性/値に組を渡せます。
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スタイルシート内で属性を使用するため、名前空間がありません。