Tom: Mal wieder Grafiken vorladen...

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

  1. 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

  2. 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

  3. 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