Mal wieder Grafiken vorladen...
Tom
- javascript
Hallo allerseits!
Auf meiner Seite starten zwei Javascript-DHTML-Bewegungen (DIV bzw. Layer) mit "<BODY ... onload...". Die Animationen sollen nur einmal ausgeführt werden (klappt' auch alles).
Mein Problem ist nur: wenn die zu bewegenden (zwar nicht großen) Grafiken noch
nicht geladen/übertragen sind, bewegen sich lediglich zwei leere Bildderrahmen über die
Seite. Wie kann ich nun die entsprechenden Grafiken *RECHTZEITIG* vorladen, damit die Animation einwandfrei läuft?
Die Animation ist (bisher) als Funktion eingebunden und startet mit <BODY ... onload="...">
Vielen Dank,
Tom
nicht geladen/übertragen sind, bewegen sich lediglich zwei leere Bildderrahmen über die
Seite. Wie kann ich nun die entsprechenden Grafiken *RECHTZEITIG* vorladen, damit die Animation einwandfrei läuft?
Hallo :-)
bau doch deine Funktion so um, daß deine Grafiken vorher als newImage geladen werden, setz dann ein passendes setTimeOut (ist dann natürlich nicht immer 100% sicher, denn es könnte ja alles mal wieder furchtbar lahm durch die Leitung kriechen) und starte deine "Über-den-Bildschirm-husch" Funktion.
Aber vielleicht gibt es noch elegantere Lösungen?
Gruß,
Trurl der Konstrukteur
Hallo Tom!
Definiere eine Funktion, die zuerst eine Variable setzt und dann Deine Bewegungsfunktion aufruft. Diese Funktion mußt Du mit onLoad aufrufen. Die Bewegungsfunktion sollte dann als Ausführbedingung die Variable berücksichtigen.
In etwa so:
function start(){
fertig = 1;
bewegung();
}
function bewegung(){
if (fertig == 1){
Hier Deine Bewegungsfkt.}
}
<BODY onLoad="start();">
Viele Grüße
Mirko Richter
Hallo Thomas,
ich würde vorschlagen, einfach einfach erstmal abzufragen, ob die Bilder geladen werden, bevor die Animation started. Dazu gibt's ja die Eigenschaft complete des Image-Objektes (
<../../tecbbe.htm#a3>).
Also onload eine Funktion solange mit setTimeout von z.B. ner halben Sekunde prüfen lassen, ob die Bilder Komplett da sind und dann erst die Bewegung starten.
also etwa in der Art
funktion start()
{
if (document.images[1].complete && document.images[2].complete)
bewegen();
else
settimeout(start(),500);
}
function bewegen()
{
// Hier deine DHTML Funktion
}
<body onLoad="start()">
</body>
So ungefähr muesste es gehen
Gruß Leonhard