Preloader

zempsit

Erfahrenes Mitglied
Ich habe eine SWF-Datei, in welcher ich Media-Komponenten haben die einen .flv-Film laden.
Weiss jemand, wie ich es anstellen könnte, das mit .flv-Film zu preloaden?

Mfg zempsit
 
Da glaube ich findet man in der internen Flashhilfe und mit der Such-Funktion schon recht viel... z.B:
http://www.tutorials.de/forum/1069049-post18.html
oder auf Datics Site: http://www.ekto.net/

aus der Flashhilfe:
MP3- und FLV-Dateien vorausladen
Um MP3- und FLV-Dateien vorauszuladen, können Sie mit der setInterval()-Funktion eine Art Abfragemechanismus erstellen, mit dem die für ein Sound- oder NetStream-Objekt geladenen Byte in zuvor bestimmten Intervallen überprüft werden. Mit den Methoden Sound.getBytesLoaded() und Sound.getBytesTotal() können Sie den Ladefortschritt von MP3-Dateien verfolgen. Mit den Eigenschaften NetStream.bytesLoaded und NetStream.bytesTotal können Sie den Ladefortschritt von FLV-Dateien verfolgen.

Im folgenden Beispielcode wird mit setInterval() die Anzahl der geladenen Byte für ein Sound- oder NetStream-Objekt in zuvor bestimmten Intervallen überprüft.

PHP:
// Neues Sound-Objekt für die Sound-Wiedergabe erstellen.
var songTrack = new Sound();
// Die Abfragefunktion erstellen, die den Ladefortschritt verfolgt.
// Dies ist die Funktion, die "abgefragt" wird. Sie überprüft 
// den Ladefortschritt des als Verweis übergebenen Sound-Objekts.
checkProgress = function (soundObj) {
  var bytesLoaded = soundObj.getBytesLoaded();
  var bytesTotal = soundObj.getBytesTotal();
  var percentLoaded = Math.floor(bytesLoaded/bytesTotal * 100);
  trace("%" + percentLoaded + " geladen.");
}
// Intervallabruf nach dem beendeten Ladevorgang löschen.
songTrack.onLoad = function () {
  clearInterval(poll);
}
// Streaming-MP3-Datei laden und Aufruf von checkProgress() starten
songTrack.loadSound("beethoven.mp3", true);
var poll = setInterval(checkProgress, 1000, songTrack);

Zum Laden externer FLV-Dateien können Sie dieselbe Abruftechnik verwenden. Mit den Eigenschaften NetStream.bytesLoaded und NetStream.bytesTotal erhalten Sie die Gesamtzahl von Byte und die bisher geladenen Byte für eine FLV-Datei.

FLV-Dateien können auch mit der NetStream.setBufferTime()-Methode vorausgeladen werden. Diese Methode erwartet einen einzigen Parameter, der angibt, wie viele Sekunden verbleiben, bis der zu ladende FLV-Stream wiedergegeben wird.

mfg :)
 
Vielen Dank für deine Antwort. Ich bin nicht gerade sehr geübt in Flash. Ich habe eigentlich fast keine Ahnung.
Muss ich nun die Media-Komponenten ins zweite Bild verschieben und das aus der Flashhilfe im AS des ersten eingeben, oder wie mache ich das am Besten?

mfg zempsit
 
Ist das denn überhaupt möglich, wenn ich eine Media-Controller-Komponente habe davor einen Preloader zu bauen?
 
Ist das denn überhaupt möglich, wenn ich eine Media-Controller-Komponente habe davor einen Preloader zu bauen?
Vielleicht möglich, aber wahrscheinlich unnötig aufwändig. Du könntest versuchen, den FLV-Stream vorzuladen, bevor die Mediakomponente angezeigt wird, in der Hoffnung, dass sich diese dann die Daten aus dem Cache holt (ungetestet). Was sollte das aber bringen? Der Vorteil von FLV-Streams ist ja grade, dass die Wiedergabe beginnnt, wärend noch Daten heruntergeladen werden. Ohne zumindest fortgeschrittene AS-Kentnisse würde ich Dir von so etwas sowieso abraten. Sollte diese Komponente nicht selbstständig einen Fortschrittsbalken o.ä. anzeigen (sorry, ich arbeite nicht mit den vorgefertigten Komponenten ;))?

Ansonsten kann ich Dir einen der Videoplayer empfehlen, die Du auf meiner Seite findest - die sind nicht ganz so groß, leichter anzupassen und zeigen auch Ladebalken an ...

Gruß
.
 
Zurück