Hallo,
Ja aber durch setCurrentTime setze ich ja die Uhr neu, so dass auch getCurrentTime die neue Uhrzeit verwendet. Und das funktioniert ja eingeschränkt auch.
Warum funktioniert getCurrentTime dann offenbar anders, wenn ich es später in einer anderen Funktion aufrufe?
Berechtigte Frage!
Nach paar Tests: Es gibt offensichtlich ein Unterschied in der Interpretation des "onload"-Events zwischen dem SVG-Viewer vom Adobe (ich habe hier 3.03 Build 94) und andere SVG-Implementierungen.
Rufst du die Datei mit dem SVG-Viwer auf, passiert das was ich schon beschreiben habe, rufst du die Datei im Opera (habe jetzt mit 9p1 getestet (im 8.5 funktioniert der Script nicht (ebenso nicht im Firefox))) auf, verhält sich die Zeitabfrage, so wie du es erwartest.
Der SVG-Veiwer führt den Script erst aus, wenn die Seite geladen wurde und betrachtet offensichtlich die Funktion nach dem die Seite geladen wurde auch als beendet und bei einer neuen Abfrage der Zeit, gibt es eben nur die Zeit aus, die Seit dem vergangen sind.
Füge mal:
<circle id="c0" cx="150" cy="150" r="10" fill="red" onload="alert(svgroot.getCurrentTime())" onclick="sZeit()" />
in die Datei ein und teste dann. Da kann man sehen, dass _während_ des Ladens der Seite 'svgroot' noch nicht zur Verfügung steht.
Grüße
Thomas