Javapreloader ( swf & gif )


nordi

Erfahrenes Mitglied
Hi Leute,

ich mach gerade ein Redesign meine Homepage und habe diesesmal ein bisschen mit Flash rumgespielt. Die Flashanimationen wollte ich vorher mit einem Preloader vorladen lassen. Den Preloader habe ich gefunden und er ist mit Javascript gecodet. Ich habe probiert, die Flashanimationen vorzuladen, doch da bricht er immer ab. Kann man überhaupt Flashanimationen mit JS vorladen und wenn ja, wie ?
Hier ist der Quellcode vom Preloader, mit dem ich das versucht habe.

PHP:
// kommt in den Headbereich
<script language="JavaScript1.2">

startingColor = new Array() // <-- Do not modify!
endingColor = new Array() // <-- Do not modify!

// YOU MAY MODIFY THE FOLLOWING:
var yourImages = new Array
("index/images/Capture.gif", "index/images/inordiv3.gif", "index/images/pfeil.gif", "index/images/banner.gif") // Fill this array with the images you wish to preload
var locationAfterPreload = "index/main.php?show=news" // The script will redirect here when the preloading finishes *successfully*
var preloadbarWidth = 280 // The length of the preload bar. Should be greater than total amount of images you want to preload!
var preloadbarHeight = 7 // The height of the gradient/preload bar
var backgroundOfGradient = "#FFFFFF" // Default color while the preload bar is "filling up"

// Color the preloadbar is starting with - enter 1st, 3rd and 5th numbers/letters of color code: 4FD
startingColor[0] = "9" 
startingColor[1] = "A"
startingColor[2] = "9"

// Color the preloadbar is going to end up with - enter the 1st, 3rd and 5th numbers/letters of color code
endingColor[0] = "9"
endingColor[1] = "A"
endingColor[2] = "9"

// FOR TROUBLESHOOTING:
var gap = 3 // PLAY AROUND WITH THIS SETTING IF YOU GET A JAVASCRIPT ERROR!!! 2 is the minumum value!!!


// DO NOT MODIFY ANYTHING BEYOND THIS POINT!!!

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>
//der rest kommt jetzt in den body bereich
<script language="JavaScript1.2">
<!-- beging hiding
document.write('<table border="1" bordercolor="#404F5D" cellpadding="0" cellspacing="0" width="' + preloadbarWidth + '"><tr height="' + preloadbarHeight + '" bgcolor="' + backgroundOfGradient + '">');
for (i = 0; i < num; i++) {
	document.write('<td bordercolorlight="#404F5D" bordercolordark="75A0BD" width="' + gap + '" id="cell' + (i+1) + '"></td>');
}
document.write('</tr></table>');
loadImages();
// end hiding -->
</script>

Schon vielen Dank im vorraus

greets aus köln

marius
 

Christian Fein

Erfahrenes Mitglied
Du bist hier auf komplett falsche Baustelle ;)

Das ist Java Forum und kein JavaScript Forum.

JavaScript findest du dort wo ich den Thread jetzt hinverschiebe :)
 

THE REAL TOOLKIT

Erfahrenes Mitglied
afaig nicht möglich
aber du könntest ja einen unsichtbaren frame benutzen und den film da laden lassen während du den besucher hinhälst
 

Forum-Statistiken

Themen
272.355
Beiträge
1.558.614
Mitglieder
187.830
Neuestes Mitglied
hansmeiser