Struppi: Layer bewegen

Beitrag lesen

Hier der Quellcode:

Dazu gibt es einiges zu sagen.

<script language="javascript">

Hier fehlt das type Attribut und das language Attribut ist unerwünscht.

var Punkte = new Array();

Punkte[0] = new Array;
Punkte[0]["x"] = 450;
Punkte[0]["y"] = 450;

Das ist kein Array, sondern ein Objekt, du solltest es auch so verwenden:
Punkte[0] = new Object;
Punkte[0].x = 450;
Punkte[0].y = 450;

Punkte[1] = new Array;
Punkte[1]["x"] = 240;
Punkte[1]["y"] = 240;

dito.

function move_oefter(){
var firstRun = "false";

In JS gibt es false und true als Schlüßelwörter, es besteht also keine Notwendigkeit diese als String zu benutzen.

var firstRun = false;

for(var i=0; i<Punkte.length; i++) {
  if(firstRun == "true"){

if(firstRun == true){

// alert("setTimeout wird gestartet")
   document.getElementById("debug").value = document.getElementById("debug").value + "Warte 2 sec...\n"

window.setTimeout('Move("layer1", ' + Punkte[i]["x"] + ', ' + Punkte[i]["y"] + ')','2000');

Deine Parameter sehen seltsam aus. Lass dir doch mal mit einem alert ausgeben was da raus kommt. Als 2. Parameter wird eine Zahl in Millisekunden erwartet kein String.

}
  else {
   Move("layer1", Punkte[i]["x"], Punkte[i]["y"]);
   firstRun = "true";

firstRun = true;

}
}
}

function Move(element_name, x, y) {
var obj;
if (document.all) {
  eval('obj = document.all.' + element_name);

eval ist evil!
u.a. macht es dein Skript langsamer und es erschwert das debuggen.

Und es ist einfach unnötig:
obj = document.all[element_name];

Das deine Schleife falsch ist wurde dir ja ausch schon gezeigt.

Hier mal ein Möglichkeit wie das was du willst klappen könnte:

<script type="text/javascript">
function Point(x, y)
{
    this.x = x;
    this.y = y;
}
var Punkte = new Array();

Punkte[0] = new Point(450, 450);
Punkte[1] = new Point(240, 240);
Punkte[2] = new Point(130, 130);

function move_oefter(nr)
{
 if(!nr) nr = 0;
 Move("layer1", Punkte[nr].x, Punkte[nr].y);
 if(nr < Point.length) window.setTimeout( 'move_oefter('+ ++nr + ')', 2000);
}

function Move(element_name, x, y) {
    var obj;
    if (document.all) obj = document.all[element_name];
    else  obj = document.getElementById(element_name);
    obj.style.left = x + 'px';
    obj.style.top = y + 'px';
    return true;
}
</script>

Struppi.