2010-12-04 7 views

Antwort

34

Das vierte Byte in der SWF-Datei trägt die Versionsnummer, zum Beispiel 0A wird für Flash Player 10.

EDIT : Aufgrund des hohen Interesses, das diese Frage bekommen hat, habe ich mich entschieden, mehr Feedback zu geben

Die ersten 8 Bytes einer beliebigen SWF-Datei sind nicht komprimiert, der Rest der Datei könnte durch die zlib-Komprimierung komprimiert werden (oder nicht).

  • 1. Byte: 'F' (nicht komprimiert) ODER 'C' (komprimiert).
  • 2. Byte: 'W' immer.
  • 3. Byte: 'S' immer.
  • 4. Byte: Versionsnummer (09 bedeutet, dass diese Datei auf Flash Player 9 ausgerichtet ist usw.)
  • 5. bis 8.5: Länge der gesamten Datei in Bytes.
+3

Danke, sieht aus wie es Flash Player ist 10. Wie kann ich 10 und 10.1 unterscheiden? http://www.johndierks.com/img/flashversionhexdump.png – John

+4

Die SWF-Datei selbst ist nicht auf eine bestimmte Minor-Version von Flash Player ausgerichtet. –

+0

Wie ich unten gepostet habe, sagt dies Ihnen die Version der SWF-Spezifikation, der Ihre Datei folgt, aber nicht die Mindestversion von Flash Player. –

2

einen Blicks an dem SWF-spec Nehmen von http://www.adobe.com/devnet/swf.html

dann ein Hex-Dump tun oder die SWF-Datei in einem Editor öffnen, die Hex anzeigen kann. Die SWF-Version ist eines der ersten paar Bytes und befindet sich vor dem Start der komprimierten Daten. Ich möchte sagen, dass es Byte 4 ist, aber ich erinnere mich nicht vollständig. Der Wert ist die Versionsnummer. IIRC, die Punktversion ist nicht in der SWF codiert.

GNU-Datei kann Ihnen auch sagen. Vielleicht habe ich meine Regeln dafür geändert.

+0

Schnelle Notiz über die Punktversion Sache. Adobe hat einige wesentliche Änderungen an Flash Player Mitte der Version vorgenommen (z. B. H.264-Unterstützung in 9.0.115). Wenn Sie einer Seite eine SWF-Datei hinzufügen, sollten Sie swfobject verwenden und die Punktversion angeben, um sicherzustellen, dass der Benutzer über den richtigen Player verfügt (und, falls möglich, ExpressInstall bereitstellt). Bei der Bestimmung der Mindestversion von einer unbekannten SWF-Datei werden neben den archivierten Flash-Playern von adobe.com einige Versuche und Fehler gemacht. – mpdonadio

+0

Irgendwelche Tipps, wie dieser Prozess geht? Nur die vollständige Versionsnummer zu kennen, ist für mich im Moment gut genug, aber ich würde mich freuen zu hören, wie dieser Prozess funktioniert. – John

+0

Sie müssen die Release Notes für die Point-Versionen überprüfen und nach neuen Features oder Dingen suchen, die nicht funktionieren. Dann raten Sie, ob diese Features verwendet werden. Einige sind offensichtlich (wie H.264-Unterstützung), andere sind subtiler. Sie können auch die Debug-Version von Flash Player installieren, mit der Sie Ausnahmen sehen können. In der Aufrufliste können Sie häufig eine Feature-Anforderung sehen. – mpdonadio

12

Das Flex SDK enthält ein Tool namens swfdump, das alle Metadaten in einer SWF-Datei anzeigt. Hier ist der Anfang der Ausgabe, wenn ich "swfdump foo.swf" laufen:

<swf xmlns='http://macromedia/2003/swfx' version='9' framerate='24' size='10000x7500' compressed='true'> 
4

Meist - alles? - von den Antworten sind bisher falsch, was unglücklich ist, da ich gehofft hatte, eine Antwort auf diese Frage zu finden :).

Byte 4 der SWF-Datei gibt an, welche Version des SWF-Dateiformats von der SWF-Datei verwendet wird. Das ist nicht das gleiche wie die Ziel-Player-Version.

Die minimale Player-Version wird während der Kompilierung über die Compileroption target-player festgelegt, während die SWF-Dateiformatversion über die Option swf-version eingestellt wird.

Die Standardwerte für diese Optionen befinden sich in FLEX_SDK/frameworks/flex-config.xml. Für die SDK-Version verwende ich (4.5.1), sind die Standardeinstellungen wie folgt:

<!-- Specifies the minimum player version that will run the compiled SWF. --> 
    <target-player>10.2.0</target-player> 

    <!-- Specifies the version of the compiled SWF --> 
    <swf-version>11</swf-version> 

Das bedeutet swfversion.com zeigt 11 für meine SWF, obwohl ich Benutzer benötigen nur 10,2 zu haben. Und nach http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html legt Flex 4.6 den Ziel-Player auf 11.1 und swf-Version auf 14. Ich bin also nicht klar, wie swfversion.com überhaupt nützlich ist.

+1

Kannst du den Verweis auf eine von Adobe veröffentlichte Spezifikation unterstützen, um die Behauptung zu unterstützen, dass andere Antworten * falsch * sind? Mein Verständnis war das Byte 4 Sache noch angewendet, aber die Übersetzung war nicht mehr eins zu eins mehr zwischen SWF-Version und Flash Player-Version jetzt, da es kleinere Releases gibt. Es steht immer noch, dass Sie keine Punkt-Release erkennen können. – mpdonadio

+1

vorausgesetzt, dass Sie Recht haben Gibt es eine Möglichkeit, herauszufinden, auf welche Flash-Player-Version eine swf-Datei gerichtet ist? –

+1

@MPD Brian hat Recht, schaue auf meine Antwort für Details, und hier ist die Referenz, die Sie wollten fr om Adobe - http://blogs.adobe.com/airodynamics/2011/08/16/versioning-in-flash-runtime-swf-version/ – danishgoel

12

Dies fügt hinzu, was Brian Sharon sagte.

Ja, das 1-zu-1-Mapping von SWF-Version und Flash Player-Version ist nicht mehr da.Das vierte Byte stellt die -swf-Version dar, und was gut daran ist, dass es jetzt eine Eins-zu-eins-Beziehung mit Punktfreigaben gibt.

Sehen sie sich diese Referenzen:
http://blogs.adobe.com/airodynamics/2011/08/16/versioning-in-flash-runtime-swf-version/
http://sleepydesign.blogspot.in/2012/04/flash-swf-version-meaning.html

Ab dem zweiten Link:

Compiler Option  Flash Player Version 
-swf-version=9  9 
-swf-version=10  10, 10.1 
-swf-version=11  10.2 
-swf-version=12  10.3 
-swf-version=13  11.0 
-swf-version=14  11.1 
-swf-version=15  11.2 
-swf-version=16  11.3 

ich diese Informationen bin mit von Dateien Flash-Spiel Benutzer zu warnen, dass ihre Flash Player könnte auf meinem Flash-Spiele-Portal veraltet sein. Und das funktioniert gut.

4

Sie Double Flash Validator-Tool verwenden:

https://flashval-temp.appspot.com/validator/

Es Informationen wie SWF Name, Version, Dateigröße, Maße, Frames pro Sekunde, Komprimierung und Gesamtrahmen zur Verfügung stellt.

Verwandte Themen