1

我有一个包含许多 FLA 文件 (files.fla) 的文件夹。

我想知道是否有一种方法可以一次将所有这些 .fla 文件转换为 .swf 或 .mov 文件(而不是在 Adob​​e Animate 中打开每个 fla 文件,然后将它们导出为 swf)。

我还想知道是否可以使用 Python 脚本或在 Adob​​e Animate 外部执行的 JavaScript 代码来实现这一点。

如果有人有任何想法或任何链接,那将很有帮助。

4

1 回答 1

1

我找到了一种不在外部进行的方法。

我发布这篇文章是希望它能帮助其他人努力找出如何在软件本身(Adobe Animate)中做到这一点。

这是执行此操作的代码片段(未优化)。

顺便说一句,它真的受到 StackOverFlow 上的答案的启发(我不记得链接了)。

var swfFolder = 'Path/to/SWF/Files'​
var flaFolder = fl.browseForFolderURL('Path/to/FLA/Files');​
var folderContents = FLfile.listFolder(flaFolder);

for(i = 0; i < folderContents.length; i++){​
​
   file = folderContents[i];​
   swfFilename = file.replace(".fla", ".swf");​
   file = 'Path/to/FLA/Files' + file;​
   fl.openDocument(file);​
   fl.getDocumentDOM().exportSWF(swfFolder + "/" + swfFilename, true);​
   fl.closeDocument(file);​

}​

它有一些问题。第一次执行此脚本时,它将打开一种浏览器文件,以便选择 FLA 文件所在的目录。然后按ok每个文件。

但是,如果您只想要一个仅在一个文件上执行导出的脚本,那么上面的代码将很有帮助:

var swfFolder = 'Path/to/SWF/Files';
var swfFilename = "exportedFile.swf";
fl.getDocumentDOM().exportSWF(swfFolder + "/" + swfFilename, true);​

为了完全回答我的问题(在外部执行将 FLA 文件导出为 SWF 文件的代码),我们必须了解如何从命令行(Windows 中的 cmd)执行此脚本。然后将其扩展到包含许多 files.fla 的文件夹,我们可以编写一段 Python 代码,在 FLA 目录的每个文件上调用该脚本。

但是,我没有找到如何实现这一点。因此,如果有人对此有答案,请告诉我们。

编辑

要在 FLA 文件上调用 JSFL 脚本,请使用:

Path\To\Animate.exe file.fla Path\To\file.jsfl

链接到参考

当我不得不为此目的制作一个 Python 脚本时,整个命令对我不起作用,我必须先Adobe Animate用我的 fla 文件打开,等待几秒钟(使用 time.sleep())然后调用命令

Path\To\Animate.exe Path\To\file.jsfl

于 2019-11-18T09:30:37.370 回答