| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2009
Beiträge: 2
| LoadMovie - Preload geht nicht
Hi Leute, ich hoffe einer von euch kann mir weiterhelfen. Habe ein Skript erstellt, dass per LoadMovie-Funktion zufällig externe JPG-Bilder laden soll. Der Flash soll letzendlich einfach nur Bilder laden und anzeigen (eine Art kleine Galerie). Soweit funktioniert auch alles, nur der Preload haut nicht hin. Ich lasse mir die Variablen anzeigen, zuerst jedoch das Skript: __________________________________________________ ________ stop(); //Zufallszahl generieren; Anzahl der Bilder aus Textdatei laden var anzahl:LoadVars = new LoadVars(); anzahl.onLoad = function (success:Boolean):Void { if (success) { bilderanz = anzahl.bilderanzahl; // hier Umweg über zweite Variable, um sowohl Zufallszahl wie auch Gesamtzahl der Bilder anzeigen zu können zufallszahl = random(bilderanz)+1; // laden eines Bildes (bild1.jpg, bild2.jpg,...) bild.loadMovie("flashbilder/bild"+zufallszahl+".jpg"); // Preload; Film läuft erst weiter, wenn Bild vollständig geladen gesamt = int(bild.getBytesTotal()); geladen = int(bild.getBytesLoaded()); if (geladen == gesamt) { // Bild, ab dem die Animation startet gotoAndPlay (30); } } else { //Fehler anzeigen gotoAndPlay(5); } } // bilderanzahl.txt enthält die Variable "bilderanzahl", die vorgibt, wieviele Bilder sich im Ordner "Flashbilder" befinden anzahl.load("/bilderanzahl.txt"); __________________________________________________ ___________ Beim Starten des Films zeigt mir die Variable "gesamt" = 12 Byte (Größe der sfw-Datei), "geladen" ebenso 12 Byte. Die Größe des Bildes (bei mir ca 20kb) wird nicht mit einbezogen. Beim nächsten Durchlauf der Schleife zeigt er mir nun die Größe der sfw+Größe des vorher geladenen Bildes an. Das soll er aber eigentlich nicht tun. Mit geht es darum, dass der Film erst starten soll, wenn das Bild (für diesen Durchlauf der Schleife) vollständig geladen ist. Der Fehler muss sich also eigentlich im Fett geschriebenen Teil des Skript finden lassen, ich bin nur einfach zu doof glaub ich ... Habe auch schon die Hilfefunktion probiert und einige Vorschläge mit "onEnterFrame" gefunden. Aber wenn ich das Versuche, zeigt er mir für die beiden Variablen "gesamt" und "geladen" überhaupt nichts mehr an und der Film startet auch nicht mehr (logo) ... Kann mir jemand weiterhelfen? Vielen Dank schonmal ... |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
Das mit dem kontinuierlichen onEnterFrame-Event wäre aber der richtige Weg, denn dein Preloader wird ja nur genau ein einziges Mal durchlaufen und da wird "gesamt" kaum gleich "geladen" sein, zumindest online nicht. Ein Preloader ist ein kontinuierlicher Event, den man mit einem Intervall oder dem genannten onEnterFrame-Event erreichen kann. Ein onEnterFrame-Event ist eine Funktion, die solange auf der Stelle "rotiert", bis der Event gelöscht wird. Wenn allerdings der loadMovie im Web nicht funzt - und das kann ja durch eine schlechte Bandbreite oder einem Serverausfall jederzeit passieren - läuft sich die Funktion tot und der Film muss abgebrochen werden. Deshalb wurde ab Flash 8 auch die weitaus stabilere MovieClipLoader-Klasse eingeführt, die damit loadMovie und loadMovieNum ersetzte. In deinem Fall könntest du einen Preloader wie folgt erstellen: PHP-Code: |
|
| | #3 (permalink) |
| Neuer User Registriert seit: Aug 2009
Beiträge: 2
|
Hi Holger, zunächst ma vielen dank für die sauschnelle antwort. Copy&Paste - Dein Code funktioniert - allerdings das Problem, dass er mir beim Preload immer das anzeigt, was in der vorherigen Schleife geladen wurde, ist immernoch, genauer: Erste Schleife zeigt 12 Bytes für "BytesLoaded" und für "BytesTotal". Die ca. 20kb, was das Bild groß ist, welches er in dieser Schleife ja bereits geladen hat, zeigt er erst in der darauf folgenden Schleife, und so weiter ... Habe die Dateien mal hochgeladen, vielleicht kann mans dann einfacher erkennen, was ich meine: - bildertausch.fla und bildertausch.swf ist meine Version - bildertausch2.fla und bildertausch2.swf sind die Version mit dem Code von Holger, - bilderanzahl.txt enhält die Variable, die angibt, wieviele Bilder in dem Ordner flashbilder vorhanden sind - Ordner flashbilder enthält die dummybilder für den test (hier nur 3 Stück) Habe extra die sfw's mit rein, vielleicht tritt das Problem ja nur bei mir auf (beim umwandeln???), benutze Flash 8 Pro... Gruß Dongamilo P.S.: Online habe ich die Datei noch nicht ausprobiert... P.P.S.: noch ne kurze Verständnisfrage: Warum verwendest Du (Holger) "_root.blabla..." so häufig? Ich habe _root eigentlich immer nur verwendet, wenn ich Script in einer Unterebene geschrieben habe und dann etwas in den Hauptfilm zurückgeben wollte. Hat das einen speziellen Grund oder ist das mehr pro forma ? |
| | |
| | #4 (permalink) | ||
| Gast
Beiträge: n/a
| Zitat:
Zitat:
| ||
|
![]() |
| Lesezeichen |
| Stichworte |
| extern, loadmovie, onenterframe, preload |
| Themen-Optionen | |
| Ansicht | |
| |