一次将多个 .fla 文件转换为 .swf 或 .mov 文件
Convert many .fla files to .swf or .mov files at once
我有一个文件夹,里面有很多 FLA 文件 (files.fla)。
我想知道是否有办法将所有这些 .fla 文件一次转换为 .swf 或 .mov 文件(而不是在 Adobe Animate 中打开每个 fla 文件,然后将它们导出为 swf)。
我还想知道是否可以使用 Python 脚本或在 Adobe Animate 外部执行的 JavaScript 代码来实现此目的。
如果有人有任何想法或任何链接,那将会很有帮助。
我找到了一种不用外部的方法。
我post希望它能帮助那些苦苦寻找如何在软件本身 (Adobe Animate) 中做到这一点的人。
这是执行此操作的代码片段(未优化)。
顺便说一下,它确实受到了 Whosebug 上的一个答案的启发(我不记得 link)。
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
(Link to the reference)
当我不得不为此目的制作一个 Python 脚本时,整个命令对我不起作用,我必须先用我的 fla 文件打开 Adobe Animate
,等待几秒钟(使用 time.sleep()) 然后调用命令
Path\To\Animate.exe Path\To\file.jsfl
我有一个文件夹,里面有很多 FLA 文件 (files.fla)。
我想知道是否有办法将所有这些 .fla 文件一次转换为 .swf 或 .mov 文件(而不是在 Adobe Animate 中打开每个 fla 文件,然后将它们导出为 swf)。
我还想知道是否可以使用 Python 脚本或在 Adobe Animate 外部执行的 JavaScript 代码来实现此目的。
如果有人有任何想法或任何链接,那将会很有帮助。
我找到了一种不用外部的方法。
我post希望它能帮助那些苦苦寻找如何在软件本身 (Adobe Animate) 中做到这一点的人。
这是执行此操作的代码片段(未优化)。
顺便说一下,它确实受到了 Whosebug 上的一个答案的启发(我不记得 link)。
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
(Link to the reference)
当我不得不为此目的制作一个 Python 脚本时,整个命令对我不起作用,我必须先用我的 fla 文件打开 Adobe Animate
,等待几秒钟(使用 time.sleep()) 然后调用命令
Path\To\Animate.exe Path\To\file.jsfl