Wie erstelle ich einen Preloader?

ZIGGY_WillES

Mitglied
Hallo FlashGemeinde,

ich hab erst angefangen mit Flash und hab meinen ersten Film erstellt. War auch schon ganz stolz drauf, jetzt würd ich noch gern nen Preloader einfügen und zwar in den vorhandenen Film, ich denk das ist ein Muss, der Film lädt nämlich ziemlich lange. Ich hab hier auch schon so einiges gefunden und versucht, aber geklappt hat es bislang noch nicht.

Meine index.htm ist eine stinknormale Seite mit einem jpg das auf eine weitere htm Seite verlinkt ist, in die die fla eingebettet ist, die dann den swf abspielt. Ich hoffe ich erklär das hier verständlich, kenn mich echt noch nicht so gut aus, mit der ganzen Materie.

Aber sollte das folgende Beispiel nicht bei meinem Problem helfen?


----------------------------------------------------------------------------------------------------------------------------------


Was ist eine Flashseite im WWW ohne einen Preloader?
Einfach nur zu schreiben "Lade..." ist bei großen Flashdateien ungenügend, da der Besucher nicht weiß, wie lange er noch zu warten hat.
Abhilfe: Ein Ladebildschirm, der die zuladenen Bytes, die bereits geladenen Bytes und den prozentualen Fortschritt anzeigt!

1. Erstelle in der ersten Ebene 3 Keyframes!
2. Belege den 1. Keyframe mit einem ActionScript:

ifFrameLoaded (_totalframes) {
gotoAndPlay (3);
}

// Wenn alle Ebenen in dieser Datei geladen sind, dann gehe zu Keyframe Nr.3!

3. Belege den 2. Keyframe mit einem ActionScript:

gotoAndPlay (1);

// Wenn noch nicht alle Ebenen geladen sind, lade weiter!

4. In den 3. Keyframe kommt deine Animation. Füge hier zum Test ein Bild ein, dass mindestens 200kb hat, damit der Preloader später auch was zum laden hat. Belege dann auch hier ein AS:

stop();

// Stoppt die Animation an diesem Bild!

5. Erstelle 3 weitere Ebenenen.
6. In die 2. Ebene fügst du ein Dynamisches Textfeld ein, und benennst dieses "zuladen". Lediglich 2 Keyframes, denn im 3. hast du ja dein Bild. Da wird der Preloader nicht mehr benötigt.
Füge ein AS ein:

zuladen = _root.getbytestotal();

// Im Feld "zuladen" werden die Bytes der kompletten Flashanimation angezeigt!

7. In die 3. Ebene fügst du ein Dynamisches Textfeld ein, und benennst dieses "geladen". Lediglich 2 Keyframes, denn im 3. hast du ja dein Bild. Da wird der Preloader nicht mehr benötigt.
Füge ein AS ein:

geladen = _root.getbytesloaded();

// Im Feld "geladen" werden nun die bereits geladenen Bytes angezeigt, ähnlich wie eine Prozentanzeige, nur mit den bereits geladenen Bytes!

8. In die 4. Ebene fügst du ein Dynamisches Textfeld ein, und benennst dieses "prozent". Lediglich 2 Keyframes, denn im 3. hast du ja dein Bild. Da wird der Preloader nicht mehr benötigt.
Füge ein AS ein:

prozent = Math.round((_root.getbytesloaded()/_root.getbytestotal())*100);

// (Alles in einer Zeile schreiben!) In diesem Textfeld wird nun die gerundete Prozentzahl des Fortschritts angezeigt!


Damit du alles schön in eine Zeile schreiben kannst, drücke im ActionScript-Fenster "Strg+E", um in den Expertenmodus zu wechseln.


Herzlichen Glückwunsch!
Dein eigener Preloader!

MfG Op6er6at6or

----------------------------------------------------------------------------------------------------------------------------------

Ich hab das soweit übertragen und meinen bestehenden Film auf Bild 3 vorgeschoben, aber es net.

Kann mir jemand helfen?


Gruß
Fabian
 
Die von Dir verwendete Syntax stammt größtenteils aus Flash 4 und wird z.B. unter MX2004 wegen der falschen Groß- und Kleinschreibung überhaupt nicht laufen.

Hier [ http://www.tutorials.de/tutorials180861.html ] (Posting #2 und #7) findest Du eine ganze Reihe Preloader für verschiedene Versionen und Anforderungen - auch ganz simple. ;)

Gruß
.
 
Vielen Dank für die Hilfe hab jetzt mal den hier eingebaut

-------------------------------------------------------------------------------------------------------------------------------------------------


Du brauchst in der ersten Szene zwei Ebenen; eine mit nur einem Schlüsselbild, das Deinen Ladebalken enthält. Der Ladebalken sollte ein MovieClip sein, und den Instanznamen "ladebalken" bekommen (Instanzname != Clipname). Im zweiten Frame auf der Zeitleiste fügst Du einfach ein Bild hinzu (kein Schlüsselbild), damit der Balken in beiden Frames sichtbar ist.

Auf der zweiten Ebene erstellst Du zwei Schlüsselbilder für den Code.
Code im ersten Schlüsselbild:

PHP-Code:
var cur = this.getBytesLoaded();
var max = this.getBytesTotal();
var percent = cur * 100 / max;

trace(percent); // Ausgabe der geladenen Prozente ;)
ladebalken._xscale = percent;


Code im zweiten Schlüsselbild:

PHP-Code:

if (cur == 0 || percent < 100) {
gotoAndPlay(1);
} else {
gotoAndStop("Szene 2", 1); // gib hier Deinen Szenennamen an!
}

-------------------------------------------------------------------------------------------------------------------------------------------------

der ist ja von dir, ne?

Wenn ich den Film jetzt aber teste kommt ein Fenster mit dem Titel Ausgabe in dem "100" steht?

Was will er mir denn damit sagen? Ausserdem bleibt der Film dann so stehen und die 2.Szene kommt net. Ich versteh das nicht.

Ich hab Flash MX Version 6, hat es vielleicht damit was zu tun?

Ich will dich nicht langweilen, aber wär nett wenn du nem absoluten Beginner hier nochmal weiter helfen könntest.

Gruß
 
Hi,

dann lade Deine Datei bitte einmal hoch..

Die Ausgabe "100" kommt übrigens durch diese Zeile:
PHP:
trace(percent)
, das ist nur zu Testzwecken.

Wenn Deine zweite Szene nicht damit aufgerufen wird:
PHP:
 gotoAndStop("Szene 2", 1)
, liegt es wahrscheinlich daran, dass die Szene bei Dir nicht "Szene 2" heißt.

Wie gesagt: wenn ich Deine Datei sehen kann, lässt sich das sicher fix lösen. ;)

Gruß
.
 
Ich benutze als Preloader immer diesen hier: hier der lädt einfach den ganzen Film, er funktioniert bei mir gut....

MfG VoodOsK
 
Cool mit dem letzten hats funktioniert. Der Flash Film bleibt allerdings noch relativ lange weiss und erst ab so ca.85 % erscheint der Preloader. Aber für den Anfang reichts. Vielen an an alle.

Gruß
 
Zurück