Proporciona un análisis y procesamiento de tiempo de ejecución o tiempo de compilación de activos SWF/SWC para su uso con OpenFL. El contenido de SWF se puede utilizar para el diseño o la animación (beta) en proyectos implementados en los objetivos de escritorio, web, móviles y consola en tecnologías web y nativas.
El uso de esta biblioteca para contenido de diseño estático tiene un historial en producción. El uso de esta biblioteca para la animación debe considerarse beta y no puede optimizarse para el rendimiento. ¡Las contribuciones para mejorar el rendimiento son bienvenidas!
Hay tres rutas de código primario dentro de la biblioteca:
El tipo "SWF" proporciona un análisis completo del formato SWF/SWC (basado en la biblioteca AS3SWF original de Claus Wahlers). Este código está optimizado principalmente para la integridad y la precisión en lugar del rendimiento. Una vez que un SWF se ha analizado por completo, se puede exportar a un nuevo formato optimizado de tiempo de ejecución (SWFLITE, Animate) o hay una implementación rudimentaria disponible para usar el contenido de SWF analizado directamente en tiempo de ejecución. Aquellos interesados en mejorar esta ruta del código pueden estar interesados en mirar https://github.com/openfl/openfl-player como un comienzo para probar y mejorar la carga y la reproducción de SWF en tiempo de ejecución.
Tipo "SWFLITE" es un formato de exportador anterior, previamente integrado en OpenFL. El código existe en esta biblioteca principalmente por razones históricas. Después de analizar el contenido de SWF utilizando la ruta del código "SWF", se generó un nuevo formato con la ayuda del serializador HAXE. A pesar del tamaño de tiempo de ejecución y las mejoras de rendimiento basadas en el formato, la dependencia de la serialización HAXE tenía inconvenientes para la compatibilidad hacia atrás.
Tipo "Animate" es el último formato de exportador y el valor predeterminado para todos los objetivos. Combina los beneficios del formato "SWFLITE" al escribir a JSON y comprimir todos los activos en un solo archivo zip. Se puede mejorar iterativamente mientras se mantiene la compatibilidad hacia atrás. El formato de Macromedia SWF también tiene estos beneficios, sin embargo, está optimizado para un tiempo de ejecución diferente de los navegadores web modernos. Por ejemplo, las imágenes en un archivo SWF de Macromedia pueden tener un alfa premultiplicado ya aplicado a los mapas de bits. No hay una forma rápida de representar esto correctamente utilizando el lienzo HTML5. El formato Animate Library ofrece la oportunidad de preprocesar el contenido de SWF en un formato flexible optimizado para el uso moderno de producción.
Esta biblioteca se puede llamar automáticamente por las herramientas de comandos OpenfL /Lime para procesar las etiquetas <library /> , o se puede usar en la línea de comandos para procesar archivos SWF en archivos zip animados.
Primero, asegúrese de que <haxelib name="swf" /> se haya agregado a su proyecto.
Luego, puede agregar <library path="to/your.swf" preload="true" /> para incluir una biblioteca SWF. Esto estará disponible en tiempo de ejecución utilizando el nombre de archivo del SWF (menos el ".swf") o puede agregar id="my-unique-id" para especificar un nombre personalizado.
Hay una opción (beta) para generate="true" para generar clases HAXE para cada tipo de "Exportar para ActionScript" en el archivo SWF. La preload también es opcional, pero se recomienda simplificar el uso.
Puede crear un clip "Exportar para ActionScript" a partir de un SWF como este:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );Si prefiere crear toda la línea de tiempo, use un nombre de clip vacío:
var timeline = Assets . getMovieClip ( " my-swf: " );Si usa la opción 'Generar', en su lugar crearía una nueva instancia como esta:
var clip = new MyMovieClipName ();También puede procesar archivos desde la línea de comandos y cargarlos más tarde:
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/pathPor ejemplo:
haxelib run swf process test.swfEsto generará un archivo "test.zip" que se puede cargar en tiempo de ejecución más tarde:
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 " );
});Puede instalar fácilmente SWF usando Haxelib:
haxelib install swf
Para agregarlo a un proyecto LIME o OpenFL, agregue esto a su archivo de proyecto:
<haxelib name="swf" />
Clon el repositorio SWF:
git clone https://github.com/openfl/swf
Dígale a Haxelib dónde está instalada su copia de desarrollo de SWF:
haxelib dev swf swf
Reconstruya las herramientas de la biblioteca SWF:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
Para volver a las compilaciones de lanzamiento:
haxelib dev swf