Paul: bewegter Layer

Hallo,

ich habe ein Geschwindigkeitproblem beim bewegen von Layern, folgende JavaScript-Funktion soll einen Layer auf dem Pfad eines Rechtecks bewegen. Im Grunde funktioniert das auch, aber irgendwie ist die ganze Sache zu langsam, trotz einer Verzögerung von nur 1ms.
Wie kriege ich das schneller? Und läuft das auf langsameren Rechnern (als nem PII-450/128MB RAM) noch schnell?
(Die Funktion ist bis jetzt nur auf NS lauffähig):

http://www.koeln.netsurf.de/~jan-paul.kerspe/html/test/test.htm

--------------
function square(xwert,ywert)
{
if (ywert==200&&xwert<500)  //* oben links - oben rechts *//
{
document.layers.block.moveTo(xwert,200);
xwertneu=xwert+2;
window.setTimeout("square(xwertneu,200)",1);
}
else
{
if (xwert==500&&ywert<=500)   //* oben rechts - unten rechts *//
{
document.layers.block.moveTo(500,ywert);
ywertneu=ywert+2;
window.setTimeout("square(500,ywertneu)",1);
}
else
{
if (ywert>=500&&xwert>=202) //* unten rechts - unten links *//
{
document.layers.block.moveTo(xwert,500);
xwertneub=xwert-2;
window.setTimeout("square(xwertneub,500)",1);
}
else
{
if (xwert==200&&ywert>200)  //* unten links - oben links *//
{
document.layers.block.moveTo(200,ywert);
ywertneub=ywert-2;
window.setTimeout("square(200,ywertneub)",1);
}
else {document.Eingabe.errors.value=("FEHLER: "+xwert+" y-Wert: "+ywert)}
}
}
}
}
-------------------------
mfg,
Paul

  1. Hi,
    so geht es schneller:

    xwertneu=xwert+10;

    z. B. "10" bei allen Richtungen einsetzen. Die Eckwerte muessen durch diese Zahl teilbar bleiben, sonst bleibt das Ganze haengen. Hier das komplette Script:

    Gruss Joachim

    function square(xwert,ywert)
    {
    if (ywert==200&&xwert<500)  //* oben links - oben rechts *//
    {
    document.layers.block.moveTo(xwert,200);
    xwertneu=xwert+10;
    window.setTimeout("square(xwertneu,200)",1);
    }
    else
    {
    if (xwert==500&&ywert<=500)   //* oben rechts - unten rechts *//
    {
    document.layers.block.moveTo(500,ywert);
    ywertneu=ywert+10;
    window.setTimeout("square(500,ywertneu)",1);
    }
    else
    {
    if (ywert>=500&&xwert>=202) //* unten rechts - unten links *//
    {
    document.layers.block.moveTo(xwert,500);
    xwertneub=xwert-10;
    window.setTimeout("square(xwertneub,500)",1);
    }
    else
    {
    if (xwert==200&&ywert>200)  //* unten links - oben links *//
    {
    document.layers.block.moveTo(200,ywert);
    ywertneub=ywert-10;
    window.setTimeout("square(200,ywertneub)",1);
    }
    }
    }
    }
    }

  2. Hi

    Ich hab mir die Seite mal angesehen mit AMD K6 233 64MB ...
    Das rechteck braucht bei mir ca 2 sec für eine vertikale...

    tjaja Ich fühl mich bei Javascript auch immer wieder an alte C‚64 Tage erinnert...

    Ich nehm mal an, daß eine Schrittweitenerhöhung das ganze noch mehr ruckeln lässt.

    Vieleicht dann doch ein Java-Applet ?

    mfg
           Hendrik