0

在 Flash 5.5 中,您可以创建 Flash 项目,允许您在生产时共享 Flash 文件库。它还允许您将所有文件一起发布。

我希望在发布所有 flash fla 文件时,将输出的 swf 文件保存到特定文件夹中。我无法找到自动执行此操作的方法,因此如果您有 200 个文件,则需要转到每个 fla 文档并更改其发布设置。这有点毁了所有项目的用处......

可能可以使用jsfl来做到这一点。但是更喜欢以其他方式来做,所以我的艺术家团队可以像以前一样继续工作。

非常感谢您的时间和提前帮助。

4

1 回答 1

0

您的问题的答案是肯定的,JSFL 可以为您做到这一点。我会给你一个例子,并尽我所能在 jsfl 代码中注释以解释正在发生的事情。随时提出任何澄清问题。

因此,假设您的计算机上有一个文件夹,其中包含许多其他文件夹,这些文件夹都包含 FLA 文件。此代码将遍历该主包含文件夹中的所有文件夹,我们称其为“allFLAs”,然后将它们输出到名为“allSWFs”的文件夹中。下面的代码会将来自 allFLA 的原始文件夹保存在 allSWF 中。因此,如果 FLA 文件位于 allFLA/group1/file1.fla,那么在 allSWFs 中将包含 allSWFs/group1/file1.swf。如果您有相同名称的文件,它们就不会相互覆盖。您可以从 exportSWF 行中删除 + dirList[n] ,它会将所有 SWF 放入主 allSWFs 文件夹中。

此代码不会更改其运行的任何文件的发布设置,并在完成时关闭 Flash IDE。

// Main folder that holds the folders containing all the FLA files.
var folder = 'file:///C:/path/to/main/folder/allFLAs';

if (!null) {
    // Create an array of all the folders that are contained in our main folder.
    var dirList = FLfile.listFolder(folder, 'directories');
    // Loop through each item in the array to find each FLA file.
    for (var n = 0; n<dirList.length; ++n) {
        // Create an array of all FLA files in the directory list array.
        var list = FLfile.listFolder(folder+'/'+ dirList[n] + '/*.fla', 'files');
        fl.outputPanel.trace('file:///C:/path/to/output/folder/allSWFs/'+ dirList[n]);
        // Create containing folder for this file based on the name of the folder in the directory list array, in the new output folder.
        FLfile.createFolder('file:///C:/path/to/output/folder/allSWFs/'+ dirList[n]);
        var flaName;
        var swfName;
        for (var i = 0; i<list.length; ++i) {
            flaName = list[i];
            swfName = list[i].split('.')[0]+'.swf';
            fl.outputPanel.trace(flaName+' exported as '+swfName);
            // open the document, publish to SWF, and close without saving.
            fl.openDocument(folder+'/'+ dirList[n] +'/'+flaName);
            fl.getDocumentDOM().exportSWF('file:///C:/path/to/output/folder/allSWFs/'+ dirList[n] + '/'+swfName, true);
            fl.closeDocument(fl.getDocumentDOM(), false);
        }
    }
}
fl.quit()
于 2012-12-19T17:56:37.763 回答