Hallo Yadgar,
over = new Image();
click = new Image();
out = new Image();
over.src = "n"+i+"over.gif";
click.src = "n"+i+"click.gif";
out.src = "n"+i+".gif";
im2[i].onmouseover = function (evt) {this.src = over.src};
im2[i].onclick = function (evt) { this.src = click.src };
im2[i].onmouseout = function (evt) { this.src = out.src };
wenn der (das?) Event kommt, sind die Variablen (over, click, out) nicht mehr vorhanden bzw. mit dem letzten Wert überschrieben. Lass den oberen Teil als Preloader drin, schreib aber in die Eventdefinition direkt den Dateinamen. Ich glaube, das geht so:
im2[i].onmouseover = function (evt) {this.src = "n"+i+"over.gif"};
Ich bin mir jetzt nicht ganz sicher, ob das so klappt, aber das wurde hier schon öfter diskutiert, schau mal ins Archiv.
Gruß, Jürgen