提供SWF/SWC资产的运行时或编译时间解析和处理,以供OpenFL使用。然后可以将SWF内容用于设计或(beta)动画,以在Web和Native Technologies中部署到桌面,Web,移动和控制台目标的项目中。
将此库用于静态设计内容具有生产记录。使用此库进行动画应视为beta,并且不得优化以进行性能。欢迎提高性能的贡献!
库中有三个主要代码路径:
类型“ SWF”提供SWF/SWC格式的完整解析(基于Claus Wahlers的原始AS3SWF库)。该代码主要以完整性和准确性而不是性能进行优化。 SWF完全解析后,它可以将其导出到新的运行时优化格式(SWFLITE,Animate),或者有一个基本实现,可在运行时直接使用解析的SWF内容。那些有兴趣改善此代码路径的人可能有兴趣查看https://github.com/openfl/openfl-player,以开始测试和改善运行时SWF加载和播放。
类型“ Swflite”是一种较旧的出口商格式,以前集成在OpenFL中。该代码主要是出于历史原因而存在于该库中。使用“ SWF”代码路径解析SWF内容后,在HAXE序列化器的帮助下生成了一种新格式。尽管基于格式的运行时文件大小和性能改进,但对HAXE序列化的依赖却偏向于向后兼容。
键入“ Animate”是最新的出口商格式,也是所有目标的默认格式。它结合了“ swflite”格式的好处,同时写入JSON并将所有资产压缩到单个ZIP文件中。它可以在保持向后兼容性的同时进行迭代改进。 Macromedia SWF格式也具有这些好处,但是它针对与现代Web浏览器不同的运行时进行了优化。例如,Macromedia SWF文件中的图像可能已经将Alpha应用于位图。没有快速的方法可以使用HTML5画布正确渲染。动画库格式提供了一个机会,可以将PRECESS SWF内容预先为现代生产使用优化的灵活格式。
该库可以由OpenFL /Lime命令行工具自动调用,以处理<library />标签,也可以在命令行上使用它来将SWF文件处理到动画zip文件中。
首先,确保已将<haxelib name="swf" />添加到您的项目中。
然后,您可以添加<library path="to/your.swf" preload="true" />以包含SWF库。使用SWF的文件名(减去“ .swf”)在运行时可用,也可以添加id="my-unique-id"来指定自定义名称。
generate="true"有一个(beta)选项,用于在SWF文件中为每个“导出”类型生成HAXE类。 preload也是可选的,但建议简化使用。
您可以从SWF这样的SWF创建“ for ActionScript”剪辑:
var clip = Assets . getMovieClip ( " my-swf:MyMovieClipName " );如果您希望创建整个时间表,请使用一个空剪辑名称:
var timeline = Assets . getMovieClip ( " my-swf: " );如果使用“生成”选项,则将创建一个类似的新实例:
var clip = new MyMovieClipName ();您还可以从命令行处理文件,并稍后加载:
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/path例如:
haxelib run swf process test.swf这将生成一个“ test.zip”文件,稍后可以在运行时加载:
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 " );
});您可以使用Haxelib轻松安装SWF:
haxelib install swf
要将其添加到石灰或OpenFL项目中,请将其添加到您的项目文件中:
<haxelib name="swf" />
克隆SWF存储库:
git clone https://github.com/openfl/swf
告诉haxelib您的SWF的开发副本已安装在哪里:
haxelib dev swf swf
重建SWF库工具:
```bash
openfl rebuild tools
# or
cd swf
haxe rebuild.hxml
```
返回发布版本:
haxelib dev swf