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.