Bild laden, wenn anderes fertig geladen

B

bluewing

Hallo,

Ich habe folgendes Problem: Ich möchte eine Galerie erstellen, bei der der jeweils nächste Thumbnail geladen ist, wenn das vorherige vollständig geladen ist.

Nach durchforsten des Forums fand ich zwar 2 Galerien, die das konnten, allersings war das Actionscript für mich als relativen Anfänger undurchschaubar.

Es wäre toll, wenn jemand hierfür ein Actionscript posten könnte oder wenigstens einen Lösungsansatz beschreibt, ich denke, das Problem haben noch mehr Leute hier.

Gruß,

Christoph
 
ach durchforsten des Forums fand ich zwar 2 Galerien, die das konnten,
Gut möglich, dass zumindest eine davon auf meinem Mist gewachsen ist, von daher könnte ich wohl auch keinen "verständlicheren" Code posten als die, die Du schon gesehen hast. ;) Ich kann Dir aber vielleicht was zur allgemeinen Vorgehensweise sagen:
  • Du machst für jedes Bild einen eigenen MovieClip (jeweils mit Unterclip, in den das eigentliche Bild geladen wird) und legst alle diese Clips in einem Array ab.

  • Du lädst nun das erste Bild (indem Du dem ersten der MCs sagst: "fang an!" - z.B. durch eine "startLoad"-Methode). Die Clips sind so aufgebaut, dass jeder über einen Preloader für sein Bild verfügt, der - sobald das Bild komplett geladen ist - eine Nachricht an die Hauptzeitleiste gibt (z.B. durch so einen Methodenaufruf: "_parent.i_am_finished()").

  • Wird auf der Hauptzeitleiste nun diese Funktion (in meinem Beispiel "i_am_finished") aufgerufen, so sagt sie einfach dem jeweils nächsten Bilder-MC, er solle sein Bild laden ...
    Dazu legst Du auf der Hauptzeitleiste eine Laufvariable (z.B. "current") an, die in besagter Funktion hochgezählt wird.

  • Auf diese Weise werden alle Bilder nacheinander - und zwar nur jeweils eines - geladen.

Gruß
.
 
Hi,

danke für die schnelle Antwort

Tobias Menzel hat gesagt.:
Gut möglich, dass zumindest eine davon auf meinem Mist gewachsen ist, von daher könnte ich wohl auch keinen "verständlicheren" Code posten als die, die Du schon gesehen hast. ;) Ich kann Dir aber vielleicht was zur allgemeinen Vorgehensweise sagen:
Du machst für jedes Bild einen eigenen MovieClip (jeweils mit Unterclip, in den das eigentliche Bild geladen wird) und legst alle diese Clips in einem Array ab.
Gruß
.

Ja, eine der Galerien war von dir ;) ... und du hast geschrieben, dass du jeglichen Support verweigerst ... :rolleyes:

Zu deinem Vorschlag: Soweit war ich leider auch schon, ich wollte die Galerie aber dynamisch machen. Die ganzen .jpg's stecken in einem Array in einer .as-Datei. Ich will ja keine ganze Galerie erklärt haben, sondern "nur" wie man "erkennt", dass eine Datei, die man in einen Movieclip geladen hat, fertiggeladen ist.

Wenn ich ein .jpg in einen container_mc lade, gibt mir container.mc.getBytesTotal nämlich nur die Größe des containers und nicht der .jpg - obwohl diese korrekt geladen und angezeigt wird ... das ist mein Problem. Es wär ja eine mordmäßige Arbeit, wenn ich für 40 Bilder jeweils ein .swf erstellen müsste, das dann geladen wird.

Gruß,

Christoph
 
Soweit war ich leider auch schon, ich wollte die Galerie aber dynamisch machen. Die ganzen .jpg's stecken in einem Array in einer .as-Datei. Ich will ja keine ganze Galerie erklärt haben, sonder
Na ja, dynamisch wäre mein Vorschlag auch - die Clips werden ja "on the fly" instanziert. ;)

Wenn Du hier mal nach "Preloader" suchst, wirst Du feststellen, dass Du durch den Vergleich von "getBytesTotal()" mit "getBytesLoaded()" herausfinden kannst, wie viel Prozent einer (Bild- oder SWF-)Datei geladen sind. Der "Container" wird durch die loadMovie-Aktion überschrieben und die beiden erwähnten Methoden geben Aufschluss über den Ladestatus der Quelldatei.

Wenn alles nichts hilft, poste ich aber gerne auch mal ein kleines prototypisches Beispiel.

Gruß
.
 
Phantastisch !

Vielen Dank, das ist exakt die Lösung ! Wenn das so weitergeht, bin ich vielleicht irgendwann mal so schlau, um anderen Usern zu helfen.

:) Gruß
 
... und entspricht im Wesentlichen meinem ersten Posting. ;) "i_am_finished" heisst bei mir "nextOne" und "startLoad" "loadImg"

Gruß
.
 
Zurück