Ich habe eine SWF unbekannter Herkunft, und ich muss wissen, auf welche Flash-Player-Version es ausgerichtet war, als es veröffentlicht wurde. Wie bekomme ich diese Informationen?Wie kann ich feststellen, für welche Flash Player Version ein SWF veröffentlicht wurde?
Antwort
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.
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.
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
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
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
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'>
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.
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
vorausgesetzt, dass Sie Recht haben Gibt es eine Möglichkeit, herauszufinden, auf welche Flash-Player-Version eine swf-Datei gerichtet ist? –
@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
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.
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.
- 1. Speicher in SWF (Flash Player)
- 2. Wie installiere ich eine ältere Version von Flash Player?
- 3. Kann ActionScript mitteilen, wann eine SWF-Datei veröffentlicht wurde?
- 4. Wie kann ich feststellen, welche Version von Cassandra ich verwende?
- 5. Wie kann ich feststellen, welche Chrome-Version installiert ist?
- 6. AS3 Veröffentlicht SWF flackert
- 7. Wie kann ich feststellen, welche WCF-Version ausgeführt wird?
- 8. Flash SWF spielt nicht!
- 9. Wie kann ich feststellen, welche Version von MVC installiert ist?
- 10. Wie Flash Player Version von js
- 11. Flash Player magische Bildrate
- 12. Wie kann ich feststellen, welche Schaltfläche zum Senden geklickt wurde
- 13. Wie kann ich feststellen, welche App von Intent.createChooser ausgewählt wurde?
- 14. Load SWF Compiled für Flash 10 in Flash 9 SWF
- 15. Ermitteln, wann der Flash-SWF-Film mit Javascript beendet wurde
- 16. einen Flash Player JavaScript
- 17. Wie kann ich SWF-Datei in asp.net Flash-Steuerelement anzeigen?
- 18. Warum ist mein swf verursacht den Flash Player zum Absturz
- 19. Kann ich feststellen, welche Submit-Schaltfläche in JavaScript verwendet wurde?
- 20. Wie zu einem anderen Flash-Film Fallback, wenn der erste eine neuere Flash-Player-Version benötigt
- 21. Ansichtsfenster-Größenänderungsereignis für Flash-Player
- 22. Wie kann ich feststellen, ob ein angeschlossenes USB-Gerät ein USB-Flash-Laufwerk ist?
- 23. Wie kann ich feststellen, ob ein Bild photoshopped wurde?
- 24. Wie kann ich feststellen, mit welcher CakePHP-Version ein Projekt erstellt wurde?
- 25. Proxyeinstellungen für Flash Player festlegen
- 26. Wie kann ich feststellen, welche Arbeitsmappe ein Ereignis ausgelöst hat?
- 27. Wie kann ich feststellen, welche Version von Visual Studio zuletzt für die Arbeit an einem Projekt verwendet wurde?
- 28. Wie kann ich feststellen, welche dynamische Steuerung an ein Ereignis gesendet wurde?
- 29. Wie kann ich feststellen, welche Version von IE ein Benutzer in JavaScript ausführt?
- 30. Wie kann ich feststellen, ob ein UILabel berührt wurde?
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
Die SWF-Datei selbst ist nicht auf eine bestimmte Minor-Version von Flash Player ausgerichtet. –
Wie ich unten gepostet habe, sagt dies Ihnen die Version der SWF-Spezifikation, der Ihre Datei folgt, aber nicht die Mindestversion von Flash Player. –