Methoden zum Manipulieren von Informationen | |
<< < > >> | > Hauptteil > Interaktion > SVG DOM > internes Skript > Manipulieren |
2. Hauptteil
2.6 Interaktion
2.6.3 SVG DOM
2.6.3.1 internes Skript
2.6.3.1.3 Manipulieren
|
Das einfache Auslesen von Informationen ist auf jedem Fall notwendig und nützlich, alleine aber recht langweilig, wie die letzten Beispiele gezeigt haben. Interessant wird es dann, wenn man an dem SVG-Dokument auch etwas ändern kann. Dieses Kapitel zeigt die Funktionen, die die Knoten eines SVG-Dokuments manipulieren. Angefangen wird mit den Funktionen, die Attribute und Style-Eigenschaften verändern. Diese Funktionen können auf alle Element-Knoten angewendet werden.
Das Beispiel 50 zeigt
mit einem Mouseover-Effekt die Auswirkungen der Funktionen. Ist die Maus
über einer Elementgruppe, wird der Stern aus dieser Gruppe vergrössert
(setAttribute()) und der Kasten im Hintergrund
sichtbar gemacht (removeProperty()). Tritt
die Maus wieder aus der Gruppe aus, wird der Stern wieder normal groß
(setAttribute()) und der Kasten verschwindet
(setProperty()).
Das Beispiel 51 stellt
einige dieser Funktionen vor. Bei dieser SVG handelt es sich um ein sehr
simples Zeichenprogramm: über die Buttons oben in der Leiste kann
man wählen, welche Geometrie man zeichnen möchte (Rechteck oder
Kreis). Wenn man dann auf die weisse Zeichenfläche klickt, wird diese
an der Stelle gezeichnet. Dies geschieht in der Funktion drawGeo(evt),
die einen neuen Knoten erstellt und dann an die Gruppe mit der id="canvas"
als Kindknoten anhängt. Ausserdem wird eine Geometrie wieder gelöscht,
wenn man auf diese klickt, dies erledigt die Funktion remove(evt).
Das Beispiel 52 ist eine Erweiterung des Zeichenprogramms aus Beispiel 51. Nun sind zwei Status-Zeilen hinzu gekommen: unten wird die aktuelle Position der Maus dargestellt, oben steht der Name der Geometrie, die momentan gezeichnet werden kann, sowie die Koordinaten der zuletzt gezeichneten Geometrie. Der Scripting-Teil nutzt einige der oben genannten Funktionen (setData(), appendData(), replaceData()). Vom Prinzip her funktionieren die restlichen Funktionen ähnlich und die Funktionsweise ist sicherlich von String-Funktionen anderer Bibliotheken her bekannt. |