Wird die SWF-Datei vor dem Start auf den PC des Benutzers heruntergeladen / Wie werden Flash Files auf dem PC des Benutzers abgespielt?

1825
Kanini

Ich würde gerne wissen, wie eine Flash-Datei auf dem Benutzer-PC abgespielt wird. Zum Beispiel, wenn mein Code wie folgt lautet:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="970" height="490" id="PRE" align="middle"> <param name="allowScriptAccess" value="always" /> <param name="allowFullScreen" value="false" /> <param name="movie" value="cmck_rhp_pre.swf" /><param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" />  <embed src="PRE.swf" quality="high" bgcolor="#ffffff" width="970" height="490" name="PRE" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> 

Die PRE.swf-Datei hat etwa 413 KB. Wenn der Benutzer diese Seite startet, wie wird die Datei tatsächlich abgespielt, wie in. Wird die 413 KB auf den Computer des Benutzers heruntergeladen und dann abgespielt oder ...? Grundsätzlich würde ich gerne wissen, wie Flash-Dateien (swf oder flv) auf dem PC eines Benutzers abgespielt werden. Dies dient dazu, die Auswirkungen vor der Bereitstellung zu verstehen.

UPDATE 1: Wenn ich die swf-Datei durch Eingabe von \\\ PRE.swf im IE öffne, wird die Flash-Datei wiedergegeben. Ich sehe jedoch nichts im Ordner "Temporäre Internetdateien".

1
Paketüberfluss ? ukanth vor 14 Jahren 0
Das dachte ich auch, aber da es nicht genau auf die Programmierung bezogen ist, dachte ich, ich werde es hier posten. In der Tat habe ich die Frage bereit, auch auf SO gepostet zu werden. Kanini vor 14 Jahren 1
@Kanini, nein, bitte nicht die gleiche Frage auf Stack Overflow stellen. Wenn die Leute glauben, dass es dorthin gehört (was ich nicht tue), dann wird * diese * Frage gestellt. Arjan vor 14 Jahren 1
Danke Arjan, deshalb habe ich es nicht in SO gepostet. Kanini vor 14 Jahren 0

4 Antworten auf die Frage

4
CarlF

Tatsächlich werden Flash-Filme (Animationen) abgespielt, sobald das erste Bild vollständig heruntergeladen ist, während der Rest der SWF-Datei im Hintergrund heruntergeladen wird. Sie wissen, dass diese "so viel Prozent" -Displays lange Flash-Animationen zeigen? Wir Flash-Entwickler nennen sie "Preloader". Sie verhindern, dass der Film startet, bevor er vollständig oder vollständig heruntergeladen wurde. Sie werden also nicht stottern und pausieren, wenn der Player versucht, noch nicht heruntergeladene Frames abzuspielen

Die gesamte SWF-Datei wird zwar heruntergeladen, die Wiedergabe beginnt jedoch zuvor.

2
Arjan

Nur um sicher zu sein, dass Sie nichts verwechseln: Manche Leute bezeichnen SWF-Dateien als "Flash-Filme". Andere verwenden diesen Begriff nur für FLV-Dateien (Flash-Video).

Auf Websites wird SWF im Flash Player abgespielt, während FLV-Dateien von einer (kleinen, wiederverwendbaren) SWF-Datei abgespielt werden, die den Bildschirm und seine Steuerelemente (Wiedergabe, Pause, Vorlauf, Vollbild usw.) anzeigt selbst wird im Flash-Player abgespielt.

Soweit ich verstehe, werden SWF-Dateien häufig (oder immer?) Vor dem eigentlichen Start der Wiedergabe heruntergeladen. Flash ermöglicht jedoch die Anzeige eines benutzerdefinierten animierten Begrüßungsbildschirms, während der Download läuft. FLV - Dateien müssen nicht heruntergeladen werden, die ganzen Weg vor dem Spiel beginnt, und der SWF - Player oft ermöglicht auch Teile des FLV - Skipping, ohne jemals das Herunterladen (wenn der Server unterstützt, dass auch).

Der Flash Player verwendet einen eigenen Cache, der (für den aktuellen Benutzer) mit allen Browsern Ihres Computers gemeinsam genutzt wird.

(Beachten Sie auch, dass das <object>und <embed>das in Ihrem Beispiel verschiedene Möglichkeiten sind , um dasselbe in verschiedenen Browsern zu erreichen.)

1
John T

Die vollständige Flash-Datei wird vor der Ausführung heruntergeladen. In diesem Cache wird nichts angezeigt, wenn Sie ihn so anzeigen, weil Sie ihn lokal ausführen. Es muss keine weitere Kopie auf der Festplatte erstellt werden.

Danke, John. Wenn ich den Browser jedoch einmal angesehen habe und dann die URL wieder schließe / wieder öffne, wird er dann erneut heruntergeladen? Kanini vor 14 Jahren 0
Sie haben nicht den Punkt Kanini verstanden - Sie führen ihn bereits lokal aus, die Festplatte muss nicht erneut kopiert werden. Charlls vor 14 Jahren 0
Ah, ich sehe wo das Problem ist. Was ich wollte, war: Wenn ich über den Browser darauf zugreife, sehe ich es immer noch nicht im lokalen Cache. Lasst uns vorerst vergessen, so auf sie zuzugreifen. Wenn ich über die HTML-Seite darauf zugreife, das Browserfenster schließen und das Fenster erneut öffnen und darauf zugreifen, wird es erneut heruntergeladen? Habe ich es wenigstens diesmal richtig verstanden? Kanini vor 14 Jahren 0
Wenn Sie über das Browser mit dem Protokoll http http ** darauf zugreifen, wird es beim ersten Mal heruntergeladen, wenn es nicht im Cache gespeichert ist. Wenn Sie es noch nicht abgelaufen sind, können Sie vom Cache aus darauf zugreifen. Ob das Caching stattfindet, hängt von den HTTP-Headern ab, die Ihr Webserver mit der SWF-Datei sendet. Chris W. Rea vor 14 Jahren 0
1
Charlls

Es wird nicht lokal gespeichert, weil es bereits lokal ist! Sie verwenden Ihren Browser nicht für die HTTP-Anforderung der Flash-Datei von einem Remote-Server. Daher müssen Sie nicht in den Cache kopieren.

Verwenden Sie eine von zwei Methoden, um sicherzustellen, dass SWF-Dateien jedes Mal heruntergeladen werden:

Verwenden des Headers "Expires" Der Expires-Header eines HTML-Dokuments teilt einem Webbrowser mit, wann ein zwischengespeichertes Dokument aus dem Cache ausläuft. Die Verwendung eines Datums in der Vergangenheit stellt sicher, dass das Dokument immer abgelaufen ist.

 <!-- BEGIN INSERT --><META HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT"><!-- END INSERT --> 

Jedes Mal, wenn dieses Dokument angefordert wird, stellt der Browser fest, dass die zwischengespeicherte Version abgelaufen ist, und lädt die Datei von ihrem Ursprungsserver herunter. Verwenden des Pragma: No-Cache-Headers. Dieser Code weist den Browser an, das Dokument überhaupt nicht zwischenzuspeichern.

<!-- BEGIN INSERT --><HEAD><META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"></HEAD><!-- END INSERT --> 
The tag only applies to the HTML (and should match any values set in the HTTP headers). Any embedded media can only rely on the HTTP headers. One can see those online at, for example, http://web-sniffer.net Arjan vor 14 Jahren 0