| |||||||
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) |
| flash4fun Registriert seit: Nov 2003 Ort: Bad Nauheim
Beiträge: 104
|
Hallo, ich verzweifle daran einen funktionierenden Preloader im Hauptfilm zu erstellen, mit dem ich meine Bilder und Filmchen laden kann. Ich habe mir aus den Tuts folgendes Script geklaut und in mein erstes Schlüsselbild des Hauptfilms gesetzt. Damit lade ich ein Bild in einen Movieclip. Da ich davon ausging, daß das Laden sehr schnell ist habe ich mit trace("hier") in der Funktion ladestatus eine Testausgabe erzeugt, die NIE! angezeigt wird. Was mache ich falsch ? Sollte jemand weiterwissen, würde ich mich über einen Tip freuen. Das Script (ohne die Movies) habe ich hier aufgelistet. Grüße cybermad Hier ist mein Script: // leeren Movieclip zur Aufnahme der geladenen Dateien erstellen createEmptyMovieClip("ladeziel",0); ladeziel._x=0; ladeziel._y=0; // Ladebefehl ladeziel.loadMovie("bild.jpg"); ladestatus(); // Aufruf der Funktion für die Preloaderanzeige // Ladeanzeige sichtbar machen loader._visible = false; //--- Ladefunktion -------------------------------- ladestatus=function(){ // Einen onEnterFrame-Event erstellen, so dass nun // der Ladezustand kontinuierlich abgefragt und // angezeigt wird loader.onEnterFrame=function() { trace("hier"); geladen = _root.ladeziel.getBytesLoaded(); zuladen = _root.ladeziel.getBytesTotal(); if (geladen>=10) { // Ladeanzeige sichtbar machen loader._visible = true; // Berechnung der bereits geladenen Prozent prozent = Math.round(geladen/zuladen*100); // Ausgabe im dynamischen Textfeld "prozentanzeige" this.prozentanzeige.text = prozent+" Prozent geladen"; // Skalierung des Balkens anhand der Prozentzahl this.balken._xscale = prozent; // Wenn komplett geladen if (prozent>=100) { // den EnterFrame-Event löschen um Performance zu sparen delete this.onEnterFrame; // die Ladeanzeige wieder unsichtbar machen this._visible = false; } } }; }; |
| | |
| | #2 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Gibts denn den "loader"-MovieClip überhaupt? Da is in deinem Skript nix zu erkennen...
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #3 (permalink) |
| flash4fun Registriert seit: Nov 2003 Ort: Bad Nauheim
Beiträge: 104
|
Ja, den loader-Movieclip gibt es. Deshalb habe ich ja trace eingebaut, damit auf jedem Fall etwas passiert. Was ich aber (als Anfänger) immer noch nicht verstehe, muß ich den eine load-Funktion in meinen Film einbauen, damit beim Laden etwas passiert, also onLoad=function(){ // hier dann der Aufruf von loadstatus() } loadstatus=function(){ ... } |
| | |
| | #4 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
OK, dann hast du den loader-MC direkt auf der Bühne angelegt. Hat der denn einen Instanznamen und is der auch "anwesend", wenn das Skript läuft? Weil ein trace im enterFrame sollte eigentlich schon narrensicher sein... Und die load-Funktion is ja loadMovie, da musst/kannst nicht mit onLoad ne Rückmeldung abwarten. Dafür is ja dann die preloader-Funktion zuständig, also den Ladestatus zu checken.
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #5 (permalink) |
| flash4fun Registriert seit: Nov 2003 Ort: Bad Nauheim
Beiträge: 104
|
Der loader-Mc hat den Instanznamen loader und liegt im ersten Schlüsselbild des Films auf der Bühne. Hier nochmals das komplette Script (im ersten Schlüsselbild): // leeren Movieclip zur Aufnahme der geladenen Dateien erstellen createEmptyMovieClip("ladeziel",0); ladeziel._x=0; ladeziel._y=0; // Ladebefehl ladeziel.loadMovie("bild.jpg"); ladestatus(); // Aufruf der Funktion für die Preloaderanzeige // Ladeanzeige sichtbar machen loader._visible = false; //--- Ladefunktion -------------------------------- ladestatus=function(){ // Einen onEnterFrame-Event erstellen, so dass nun // der Ladezustand kontinuierlich abgefragt und // angezeigt wird loader.onEnterFrame=function() { trace("hier"); geladen = _root.ladeziel.getBytesLoaded(); zuladen = _root.ladeziel.getBytesTotal(); if (geladen>=10) { // Ladeanzeige sichtbar machen loader._visible = true; // Berechnung der bereits geladenen Prozent prozent = Math.round(geladen/zuladen*100); // Ausgabe im dynamischen Textfeld "prozentanzeige" this.prozentanzeige.text = prozent+" Prozent geladen"; // Skalierung des Balkens anhand der Prozentzahl this.balken._xscale = prozent; // Wenn komplett geladen if (prozent>=100) { // den EnterFrame-Event löschen um Performance zu sparen delete this.onEnterFrame; // die Ladeanzeige wieder unsichtbar machen this._visible = false; } } }; }; |
| | |
| | #7 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Das Ding funktioniert, wenn du ladestatus nicht als Methode, sondern als normale Funktion deklarierst: ActionScript:
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
| | #8 (permalink) |
| flash4fun Registriert seit: Nov 2003 Ort: Bad Nauheim
Beiträge: 104
|
Klasse, nun funktioniert es mit dem Trace, d.h. meine Funktione wird aufgerufen, aber mein Preloader will immer noch nicht so recht. Wenn ich mir mit trace(Prozent) den aktuellen Prozentwert anzeigen lasse kommt immer 100. Kann ich den Film irgendwie byteweise laden lassen, um mir das Verhalten des Preloaders anzuschauen, oder hat Du noch eine Idee ? Grüße cybermad |
| | |
| | #9 (permalink) |
| mod_rewrite Registriert seit: Feb 2003 Ort: München
Beiträge: 15.621
|
Ich habs online getestet und da geht des schon mit den Prozenten. Offline gehts nicht, weil Flash in der Testumgebung keine Streaming-Simulation für extern hinzu geladene Medien unterstützt. Das geht erst ab MX 2004.
__________________ RTFM Wie man Fragen richtig stellt. Achim Bindannmalweg Money makes the world go round, fear makes it turn much faster. (New Model Army) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |