Also, hab durch suchen usw mir n paar kentnnise angeignet, die ich nicht mag, die hab dann verworfen und es selber gelöst.
Hier ist ein Script, das relativ leicht verständlich sein sollte
Erster Teil ist klar, bilder array, name des bildes, mit dem der preloader arbeitet.
Setzt ihn auf null breite, berechnet den zuwachs pro preloading stufe usw.
function loadpics ist das array, was vollgeballert wird zum laden, mit dsl ist das n blöder test, da ich davon mal garnichts merke, aber egal.Dann: check(0) ist ein aufruf einer funktion, die rekursiv ausgeführt wird.
Das is der hacken.
1. Ich weiß nicht,wie ich das aufrufen am ende,also check(done) unterbinden könnte, ich hab probiert, die if abfrage, ob done<length ist, nach unten zu setzen, aber das funzt nicht.
Das größte Problem ist, aber (rest funzt eigentlich), dass beim starten des preloaders zwar keine direkte Fehlermeldung kommt, dafür aber ein alert mit der Meldung: Out of memory: line xx
die Zeile ist: if (preImages[i].complete)
und das verstehe ich beim besten willen nicht, wie kann da was out of memory sein? das i ist doch nur ne for schleife von 0 bis 14, wie soll da was out of memory gelangen.
Und hier was ganz blödes, wenn ich unter diese abfrage ein alert(done); mache, funktioniert alles einwandfrei
Warum? Es kommt keine memory error meldung mehr, natürlich stört dann mein alert gewaltig, aber dann ist es weg.
Woran zum henker liegt das?
Nachtrag; wie beendet man eine funktion eigentlich, ohne dass der rest weiter ausgeführt wird? Also mit return klappts nicht, es kommt immer die fehler meldung
Hier ist ein Script, das relativ leicht verständlich sein sollte
Code:
<script type="text/javascript"> <!-- versteckt var hrefAfterLoad = "http://www.beispiel.de/index.html" var preloaderLenght = 400; var loadBarNameID = "barpic"; var Pictures = new Array( "http://www.test.de/main_picture_01.jpg", "http://www.test.de/main_picture_02.jpg", "http://www.test.de/main_picture_03.jpg", "http://www.test.de/main_picture_04.jpg", "http://www.test.de/main_picture_05.jpg", "http://www.test.de/main_picture_06.jpg", "http://www.test.de/main_picture_07.jpg", "http://www.test.de/main_picture_08.jpg", "http://www.test.de/main_picture_09.jpg", "http://www.test.de/main_picture_10.jpg", "http://www.test.de/main_picture_11.jpg", "http://www.test.de/main_picture_12.jpg", "http://www.test.de/main_picture_13.jpg", "http://www.test.de/main_picture_14.jpg", "http://www.test.de/main_picture_15.jpg" ); function preloader(){ //Set loadBar to 1 px document.getElementById(loadBarNameID).width=1; if (!document.preImages) {preImages = new Array(); addition=Math.floor(preloaderLenght/Pictures.length);} loadpics(); } function loadpics(){ for (i = 0; i < Pictures.length; i++) { preImages[i] = new Image(); preImages[i].src = Pictures[i]; } check(0); } function check(done){ for (i = 0; i < preImages.length; i++) { if (preImages[i].complete) { document.getElementById(loadBarNameID).width=document.getElementById(loadBarNameID).width+addition; if (done<preImages.length){ done++; } } } check(done); } </script>
Setzt ihn auf null breite, berechnet den zuwachs pro preloading stufe usw.
function loadpics ist das array, was vollgeballert wird zum laden, mit dsl ist das n blöder test, da ich davon mal garnichts merke, aber egal.Dann: check(0) ist ein aufruf einer funktion, die rekursiv ausgeführt wird.
Das is der hacken.
1. Ich weiß nicht,wie ich das aufrufen am ende,also check(done) unterbinden könnte, ich hab probiert, die if abfrage, ob done<length ist, nach unten zu setzen, aber das funzt nicht.
Das größte Problem ist, aber (rest funzt eigentlich), dass beim starten des preloaders zwar keine direkte Fehlermeldung kommt, dafür aber ein alert mit der Meldung: Out of memory: line xx
die Zeile ist: if (preImages[i].complete)
und das verstehe ich beim besten willen nicht, wie kann da was out of memory sein? das i ist doch nur ne for schleife von 0 bis 14, wie soll da was out of memory gelangen.
Und hier was ganz blödes, wenn ich unter diese abfrage ein alert(done); mache, funktioniert alles einwandfrei
Warum? Es kommt keine memory error meldung mehr, natürlich stört dann mein alert gewaltig, aber dann ist es weg.
Woran zum henker liegt das?
Nachtrag; wie beendet man eine funktion eigentlich, ohne dass der rest weiter ausgeführt wird? Also mit return klappts nicht, es kommt immer die fehler meldung
Kommentar