Das leidige Thema: PRELOADER!

seberix

Mitglied
Hab ein Problem mit meinem Preloader - er hört immer 4 Bilder vor "Fertig" zum Laden auf! Ich habe aber 100%ig keinen Fehler bei den Bildern! Und auch wenn ich alle Bilder weglösche und nur mehr 2 so wie jetzt im Code stehen habe hört er nach 1 Bild auf!

Warum? Bitte Hilfe!

Hier der Quelltext:

Code:
<script language="JavaScript1.2">
<!-- begin hiding

startingColor = new Array() // <-- Nicht ändern!
endingColor = new Array() // <-- Nicht ändern!

// Hier alle Bilder angeben die vorgeladen werden sollen:
var yourImages = new Array("img/fox.gif","img/about_title.gif") // Ende Bilder
var locationAfterPreload = "index/index.htm" // Hier die Seite angeben zu der nach Vorladen weitergeleitet werden soll
var preloadbarWidth = 200 // Die Länge des Vorladestatusbalkens!
var preloadbarHeight = 5 // Die Höhe des Vorladestatusbalkens
var backgroundOfGradient = "#8E561D" // Die Hintergrundfarbe des Vorladebalkens

// Startfarbwert des Vorladebalkens - Es muss dabei die der erste, dritte und fünfte Wert des entsprechenden Hexadezimalcodes angegeben werden
startingColor[0] = "F" 
startingColor[1] = "D"
startingColor[2] = "9"

// Endfarbwert des Vorladebalkens - Es muss dabei die der erste, dritte und fünfte Wert des entsprechenden Hexadezimalcodes angegeben werden
endingColor[0] = "9"
endingColor[1] = "0"
endingColor[2] = "0"

// BEI PROBLEMEN:
var gap = 7 // BEI JAVASCRIPT ERROR mit diesem Wert experimentieren! 2 ist der minimale Wert!


// AB HIER NICHTS MEHR ÄNDERN

if (!document.all) location.replace(locationAfterPreload)
var a = 10, b = 11, c = 12, d = 13, e = 14, f=15, i, j, ones = new Array(), sixteens = new Array(), diff = new Array();
var convert = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), imgLen = yourImages.length;
var loaded = new Array(), preImages = new Array(), currCount = 0, pending = 0, h = 0, hilite = new Array(), cover = new Array();
var num = Math.floor(preloadbarWidth/gap);
for (i = 0; i < 3; i++) {
	startingColor[i] = startingColor[i].toLowerCase();
	endingColor[i] = endingColor[i].toLowerCase();
	startingColor[i] = eval(startingColor[i]);
	endingColor[i] = eval(endingColor[i]);
	diff[i] = (endingColor[i]-startingColor[i])/num;
	ones[i] = Math.floor(diff[i]);
	sixteens[i] = Math.round((diff[i] - ones[i])*15);
}
endingColor[0] = 0;
endingColor[1] = 0;
endingColor[2] = 0;
i = 0, j = 0;
while (i <= num) {
	hilite[i] = "#";
	while (j < 3) {
		hilite[i] += convert[startingColor[j]];
		hilite[i] += convert[endingColor[j]];
		startingColor[j] += ones[j];
		endingColor[j] += sixteens[j];
		if (endingColor[j] > 15) {
			endingColor[j] -= 15;
			startingColor[j]++;
		}
		j++;
	}
	j = 0;
	i++;
}
function loadImages() {
	for (i = 0; i < imgLen; i++) {
		preImages[i] = new Image();
		preImages[i].src = yourImages[i];
		loaded[i] = 0;
		cover[i] = Math.floor(num/imgLen)*(i+1)
	}
	cover[cover.length-1] += num%imgLen
	checkLoad();
}
function checkLoad() {
	if (pending) { changeto(); return }
	if (currCount == imgLen) { location.replace(locationAfterPreload); return }
	for (i = 0; i < imgLen; i++) {
		if (!loaded[i] && preImages[i].complete) {
			loaded[i] = 1; pending++; currCount++;
			checkLoad();
			return;
		}
	}
	setTimeout("checkLoad()",10);
}
function changeto() {
	if (h+1 > cover[currCount-1]) {
		var percent = Math.round(100/imgLen)*currCount;
		if (percent > 100) while (percent != 100) percent--;
		if (currCount == imgLen && percent < 100) percent = 100;
		defaultStatus = "Loaded " + currCount + " out of " + imgLen + " images [" + percent + "%].";
		pending--;
		checkLoad();
		return;
	}
	eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;
	h++;
	setTimeout("changeto()",1);
}
defaultStatus = "Loaded 0 out of " + imgLen + " images [0%]."
// end hiding -->
</script>
</head>
<body bgcolor="#512E08" link="#FDDB9B" vlink="#FDDB9B" alink="#FDDB9B" scroll="auto">
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="AutoNumber1" height="100%">
    <tr>
      <td width="100%">
      <div align="center">
        <center>
        <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="99%" id="AutoNumber2">
          <tr>
            <td width="100%">
<center>



<font face="Verdana, Arial, Helvetica" size="1"><center>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</font>



<font face="Verdana, Arial, Helvetica">
<p><span style="font-weight: 1">Bitte warten...</span></p>
</center></font>



<p>



<font face="Verdana, Arial, Helvetica" color="#FFFFFF">
<span style="text-transform: uppercase; font-weight: 1"><br>
</span></font>
<font face="Verdana, Arial, Helvetica"></p>
<center>
<p>
<span style="font-weight: 1">Die Bilder werden geladen!</span></p>
</center>
</font>



<p>



<font face="Verdana, Arial, Helvetica" size="1" color="#FDDB9B"><br>
<script language="JavaScript1.2">
<!-- beging hiding
document.write('<table border="0" cellpadding="0" cellspacing="0" width="' + preloadbarWidth + '"><tr height="' + preloadbarHeight + '" bgcolor="' + backgroundOfGradient + '">');
for (i = 0; i < num; i++) {
	document.write('<td width="' + gap + '" id="cell' + (i+1) + '"></td>');
}
document.write('</tr></table>');
document.write('<p><small><a href="javascript:location.replace(locationAfterPreload)">Vorladen überspringen !</a></small></p></font>')
loadImages();
// end hiding -->
</script>
 
Da ist ein Fehler im Script...

hilite[h] enthält irgendwo keinen gültigen Farbwert, und kann somit nicht als solcher zugewiesen werden.
Wo genau dieser Fehler entsteht, hab ich keine Böcke nachzuschauen.. er scheint vom Autor aber nicht unbemerkt geblieben zu sein...
// BEI PROBLEMEN:
var gap = 7 // BEI JAVASCRIPT ERROR mit diesem Wert experimentieren! 2 ist der minimale Wert!

... probiere halt rum, was passt. Bei 4 Bilder hats bei mir bspw. mit gap=12 hingehauen.

P.S: Verwende bitte für Codebeispiele wenn möglich die [Code]-Tags.... es liest sich weitaus angenehmer;)
 
Ok - werds beim nächsten mal beachten!

Also ich hab ebenfalls mit 4 Bildern nochmal probiert und sogar von gap 2-25 alles ausprobiert - ohne Erfolg!

Hat irgendwer eine Idee?
 

Neue Beiträge

Zurück