Bietet Laufzeit oder Kompilierungszeit-Parsen und -verarbeitung von SWF/SWC-Vermögenswerten zur Verwendung mit OpenFL. SWF -Inhalte können dann für Design- oder Beta -Animationen in Projekten verwendet werden, die sowohl für Desktop-, Web-, Mobile- und Konsolenziele in Web- als auch in nativen Technologien bereitgestellt werden.
Die Verwendung dieser Bibliothek für statische Designinhalte hat eine Erfolgsbilanz in der Produktion. Die Verwendung dieser Bibliothek zur Animation sollte als Beta angesehen werden und kann möglicherweise nicht für die Leistung optimiert werden. Beiträge zur Verbesserung der Leistung sind willkommen!
In der Bibliothek gibt es drei primäre Codepfade:
Typ "SWF" bietet eine vollständige Analyse des SWF/SWC -Formats (basierend auf der ursprünglichen AS3SWF -Bibliothek von Claus Wahlers). Dieser Code ist in erster Linie für Vollständigkeit und Genauigkeit und nicht auf Leistung optimiert. Sobald ein SWF vollständig analysiert wurde, kann es in ein neues rennstimäres Format (swflite, Animate) exportiert werden, oder es gibt ein rudimentäres Implementierung für die Verwendung des Parsen-SWF-Inhalts direkt zur Laufzeit. Diejenigen, die an der Verbesserung dieses Codepfads interessiert sind, sind möglicherweise daran interessiert, https://github.com/openfl/openfl-player als Start zum Testen und Verbesserung der SWF-Lade- und Wiedergabe von Laufzeiten zu betrachten.
Typ "Swflite" ist ein älteres Exporteformat, das zuvor in OpenFL integriert ist. Der Code existiert in dieser Bibliothek hauptsächlich aus historischen Gründen. Nach dem Parsen des SWF -Inhalts mithilfe des Code -Pfades "SWF" wurde ein neues Format mit Hilfe des Haxe Serializer generiert. Trotz der Verbesserung der Laufzeit-Datei und der Leistungsverbesserungen basierend auf dem Format hatte die Abhängigkeit von Haxe-Serialisierung eine Nachteile bis zur Rückwärtskompatibilität.
Typ "Animate" ist das neueste Exporteor -Format und die Standardeinstellung für alle Ziele. Es kombiniert die Vorteile des "swflite" -Formats beim Schreiben an JSON und komprimiert alle Vermögenswerte in eine einzelne Zip -Datei. Es kann iterativ verbessert werden, während die Rückwärtskompatibilität beibehalten wird. Das Makromedia -SWF -Format hat auch diese Vorteile, ist jedoch für eine andere Laufzeit als moderne Webbrowser optimiert. Beispielsweise können Bilder in einer Makromedia -SWF -Datei möglicherweise bereits auf Bitmaps angewendet werden. Es gibt keine schnelle Möglichkeit, dies mithilfe von HTML5 -Leinwand ordnungsgemäß zu rendern. Das Animate Library-Format bietet die Möglichkeit, SWF-Inhalte in ein flexibles Format vorzubereiten, das für die moderne Produktionsnutzung optimiert ist.
Diese Bibliothek kann automatisch von den Befehlszeilen von OpenFL /LIME aufgerufen werden, um <library /> Tags zu verarbeiten, oder kann in der Befehlszeile verwendet werden, um SWF-Dateien in Animate-Zip-Dateien zu verarbeiten.
Stellen Sie zunächst sicher, dass <haxelib name="swf" /> Ihrem Projekt hinzugefügt wurde.
Anschließend können Sie <library path="to/your.swf" preload="true" /> hinzufügen, um eine SWF -Bibliothek einzuschließen. Dies ist zur Laufzeit mit dem Dateinamen des SWF (minus der ".swf") verfügbar oder Sie können id="my-unique-id" hinzufügen, um einen benutzerdefinierten Namen anzugeben.
Es gibt eine (Beta-) Option für generate="true" , um Haxe -Klassen für jeden "Export für ActionScript" -Typ in der SWF -Datei zu generieren. Die preload ist ebenfalls optional, wird jedoch empfohlen, um den Gebrauch zu vereinfachen.
Sie können einen "Export für ActionScript" -Clip aus einem SWF wie folgt erstellen:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );Wenn Sie es vorziehen möchten, die gesamte Zeitleiste zu erstellen, verwenden Sie einen leeren Clip -Namen:
var timeline = Assets . getMovieClip ( " my-swf: " );Wenn Sie die Option "generieren" verwenden, erstellen Sie stattdessen eine neue Instanz wie folgt:
var clip = new MyMovieClipName ();Sie können auch Dateien aus der Befehlszeile verarbeiten und später laden:
haxelib run swf process
haxelib run swf process path/to/swfs
haxelib run swf process test.swf
haxelib run swf process test.swf path/to/test.zip
haxelib run swf process test.swf output/pathZum Beispiel:
haxelib run swf process test.swfDadurch wird eine "test.zip" -Datei generiert, die später zur Laufzeit geladen werden kann:
import swf . exporters . animate . AnimateLibrary ;
import openfl . utils . Assets ;
...
AnimateLibrary . loadFromFile ( " path/to/test.zip " ). onComplete ( function ( library )
{
var clip = library . getMovieClip ( " MyMovieClipName " );
// or
Assets . registerLibrary ( " my-swf " , library );
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );
});Sie können SWF problemlos mit Haxelib installieren:
haxelib install swf
Um es einem Kalk- oder OpenFL -Projekt hinzuzufügen, fügen Sie dies Ihrer Projektdatei hinzu:
<haxelib name="swf" />
Klonen Sie das SWF -Repository:
git clone https://github.com/openfl/swf
Sagen Sie Haxelib, wo Ihre Entwicklungskopie von SWF installiert ist:
haxelib dev swf swf
Erstellen Sie die SWF -Bibliotheks -Tools: Tools:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
Um zurückzukehren, um Builds zu veröffentlichen:
haxelib dev swf