Fournit l'analyse et le traitement des temps d'exécution ou de compilation des actifs SWF / SWC pour une utilisation avec OpenFL. Le contenu SWF peut ensuite être utilisé pour la conception ou l'animation (bêta) dans des projets déployés sur les cibles de bureau, Web, mobile et console dans les technologies Web et natives.
L'utilisation de cette bibliothèque pour le contenu de conception statique a des antécédents en production. L'utilisation de cette bibliothèque pour l'animation doit être considérée comme bêta et peut ne pas être optimisée pour les performances. Les contributions à améliorer les performances sont les bienvenues!
Il y a trois chemins de code principaux dans la bibliothèque:
Le type "SWF" fournit l'analyse complète du format SWF / SWC (basé sur la bibliothèque AS3SWF d'origine par Claus Wahlers). Ce code est optimisé principalement pour l'exhaustivité et la précision plutôt que pour les performances. Une fois qu'un SWF a été entièrement analysé, il peut être exporté dans un nouveau format optimisé (SWFLITE, ANIMate) ou il existe une implémentation rudimentaire disponible pour l'utilisation du contenu SWF analysé directement au moment de l'exécution. Les personnes intéressées à améliorer ce chemin de code peuvent être intéressées à regarder https://github.com/openfl/openfl-player pour commencer à tester et à améliorer le chargement et la lecture SWF d'exécution.
Type "SWFLITE" est un format d'exportateur plus ancien, précédemment intégré dans OpenFL. Le code existe dans cette bibliothèque principalement pour des raisons historiques. Après analyser le contenu SWF à l'aide du chemin de code "SWF", un nouveau format a été généré à l'aide du sérialiseur HAXE. Malgré les améliorations de la taille de la taille des fichiers et des performances basées sur le format, la dépendance à la sérialisation HAXE a connu des inconvénients à la compatibilité en arrière.
Type "Animate" est le dernier format d'exportateur et la valeur par défaut pour toutes les cibles. Il combine les avantages du format "SWFLITE" lors de l'écriture sur JSON et de la compression de tous les actifs en un seul fichier zip. Il peut être amélioré de manière itérative tout en maintenant une compatibilité arrière. Le format Macromedia SWF présente également ces avantages, mais il est optimisé pour un runtime différent des navigateurs Web modernes. Par exemple, les images dans un fichier SWF Macromedia peuvent avoir déjà prémultiplied Alpha appliquée aux bitmaps. Il n'y a pas de moyen rapide de rendre cela correctement à l'aide de la toile HTML5. Le format de la bibliothèque Animate offre la possibilité de prétraiter le contenu SWF dans un format flexible optimisé pour l'utilisation de la production moderne.
Cette bibliothèque peut être appelée automatiquement par les outils de ligne de commande OpenFL / Lime pour traiter les balises <library /> , ou il peut être utilisé sur la ligne de commande pour traiter les fichiers SWF dans des fichiers zip animés.
Tout d'abord, assurez-vous que <haxelib name="swf" /> a été ajouté à votre projet.
Ensuite, vous pouvez ajouter <library path="to/your.swf" preload="true" /> pour inclure une bibliothèque SWF. Ceci sera disponible au moment de l'exécution à l'aide du nom de fichier du SWF (moins le ".swf") ou vous pouvez ajouter id="my-unique-id" pour spécifier un nom personnalisé.
Il existe une option (bêta) pour generate="true" pour générer des classes haxe pour chaque type "Export for ActionScript" dans le fichier SWF. La preload est également facultative, mais est recommandée pour simplifier l'utilisation.
Vous pouvez créer un clip "Export for ActionScript" à partir d'un SWF comme ceci:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );Si vous préférez créer la chronologie entière, utilisez un nom de clip vide:
var timeline = Assets . getMovieClip ( " my-swf: " );Si vous utilisez l'option «Générer», vous créeriez plutôt une nouvelle instance comme celle-ci:
var clip = new MyMovieClipName ();Vous pouvez également traiter les fichiers à partir de la ligne de commande et les charger plus tard:
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/pathPar exemple:
haxelib run swf process test.swfCela générera un fichier "test.zip" qui peut être chargé à l'exécution plus tard:
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 " );
});Vous pouvez facilement installer SWF à l'aide de HaXelib:
haxelib install swf
Pour l'ajouter à un projet Lime ou OpenFL, ajoutez-le à votre fichier de projet:
<haxelib name="swf" />
Clone le référentiel SWF:
git clone https://github.com/openfl/swf
Dites à Hoxelib où est installé votre copie de développement de SWF:
haxelib dev swf swf
Reconstruire les outils de la bibliothèque SWF:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
Pour revenir aux constructions de libération:
haxelib dev swf