我正在尝试通过 JSFL 从影片剪辑或 FLA 文件中的库项目中导出多分辨率精灵表。我想要实现的是正确自动导出单个影片剪辑的 1x、2x、4x spritesheets,准备好在移动设备上进行多分辨率处理,就像 TexturePacker 可以做的那样。现在我可以仅以 4 倍导出单个 PNG 文件并使用 TexturePacker 完成所有操作,但 Flash 可以在没有质量损失的情况下做到这一点,因为所有缩放和导出都将来自矢量源,而 TexturePacker 会缩小 4 倍光栅图像。唉,显然没有自动化的方法可以使用嵌入 Flash 的 spritesheet 生成器来获得它,所以我试图建立一个 JSFL 脚本。
通过 JSFL,我可以轻松导出库项目的 1x spritesheet,但我不知道如何创建同一 spritesheet 的 2x 和 4x 版本。从精灵表生成器的文档中,我看到:“如果您从舞台导出,则应用于符号实例的任何变换(缩放、倾斜等)都会保留在图像输出中。” 我正在考虑通过 JSFL 创建一个缩放为 2 倍的影片剪辑,然后在舞台上创建一个缩放为 4 倍的影片剪辑,然后将它们传递给 SpriteSheetExporter,但显然导出器只能接受来自库的符号(通过 addSymbol),而不是来自阶段。在导出工作表之前,它显然也没有任何参数来缩放或转换符号,所以我非常坚持这一点。
任何人都想出一个解决方案来自动从 Flash 影片剪辑中导出多分辨率 spritesheets?你有什么建议我可以进一步调查以实现这一目标吗?
PS 我知道 TexturePacker 可以直接处理 SWF 文件,但是这种方法有一些限制。例如,它无法正确渲染嵌套影片剪辑的帧。这就是为什么我想要一个完整的工作流程来直接从 Flash 环境中生成多分辨率 spritesheets。