Margin-Auto: (SVG) Rotation festhalten

Hi,

ich versuche gerade, ein Element entlang eines Pfades zu animieren und es dabei an bestimmten Punkten kurz Stoppen zu lassen.
Mit animateMotion bin ich da nicht viel weitergekommen (wegen dem Stoppen lassen), darum habe ich den Pfad jetzt in die Einzelpfade zwischen den Punkten zerlegt. Die werden jetzt nacheinander abgearbeitet, und zwischendrin wird mit set x- und y-Wert festgehalten (zum Stoppen). Leider geht mit auf diese Weise der Effekt von rotate="auto" verloren, das Element dreht während des Stopps wieder in seine Grundausrichtung zurück.

Gibts da eine Lösung dafür, wie ich das mit automatischer Rotation erreichen kann?

TIA

Margin-Auto

PS: Tolles Layout heute hier! Wird auch noch die Adresse geändert in http://board.de.selfhtml.org? ;-)

  1. Hallo,

    Gibts da eine Lösung dafür, wie ich das mit automatischer Rotation erreichen kann?

    Wenn Du den relevanten Code postest, findet sich vielleicht eine.

    MfG, Thomas

    1. Hi,

      Wenn Du den relevanten Code postest, findet sich vielleicht eine.

      Aus dem Gedächtnis:

      <animateMotion
      begin="1s" dur="3s"
      xlink:href="#elementonthemove">
      <mpath xlink:href="#teilstrecke1"/>
      </animatemotion
      <set attributeName="x"
      to="100" begin="4s" dur="2s"
      xlink:href="#elementonthemove"/>
      <set attributeName="y"
      to="200" begin="4s" dur="2s"
      xlink:href="#elementonthemove"/>

      <animateMotion
      begin="6s" dur="3s"
      xlink:href="#elementonthemove">
      <mpath xlink:href="#teilstrecke2"/>
      </animatemotion
      <set attributeName="x"
      to="150" begin="9s" dur="2s"
      xlink:href="#elementonthemove"/>
      <set attributeName="y"
      to="300" begin="9s" dur="2s"
      xlink:href="#elementonthemove"/>

      ... und dann kommen noch einige solcher Konstrukte.
      Hoffe, der Code hilft dir bei der Analyse weiter. Mein Problem ist eher, das er mir eben *nicht* hilft. ;-)

      Margin-Auto

      1. Aaargh,

        Aus dem Gedächtnis:

        ... das offenbar Aussetzer hat.

        latürnich ist überall in den animateMotion-Tags rotate"auto" gesetzt

        Sorry.

        Margin-Auto oder heute eher Marginus-Autus

      2. Hallo,

        ... und dann kommen noch einige solcher Konstrukte.
        Hoffe, der Code hilft dir bei der Analyse weiter. Mein Problem ist eher, das er mir eben *nicht* hilft. ;-)

        Naja, zum Laufen bekomme ich das mit diesem Code allein nicht, aber wenn schon mehrere Animationen nacheinander ablaufen sollen, dann lasse diese doch jeweils nach dem Ende der vorherigen beginnen.

        Die Animationselemente erhalten IDs und dann bei begin (und/oder end):

        begin="id_der_vorherigen_animation.end"
        oder
        begin="id_der_vorherigen_animation.end+2s"
        usw.

        Ansonsten bieten sich auch Scripting-Moeglichkeiten, z. B. mittels (der offiziellen SVG-DOM-Methoden) beginElement() / endElement() bzw. beginElementAt() / endElementAt() -- siehe Beispiel.

        Interessant ist in diesem Zusammenhang auch der Zugriff auf die Werte von baseVal bzw. animVal, was aber erst im ASV 6.0 unterstuetzt wird.

        MfG, Thomas