0

Flash 5.5 では、制作時に Flash ファイルのライブラリを共有できる Flash プロジェクトを作成できます。また、すべてのファイルをまとめて公開することもできます。

すべての Flash fla ドキュメントを公開するときに、出力 SWF ファイルが特定のフォルダーに保存されるようにします。これを自動化する方法が見つからないので、200 個のファイルがある場合は、各 fla ドキュメントに移動して、その公開設定を変更する必要があります。これは、すべてのプロジェクトの有用性を台無しにします...

jsfl を使用して実行できる可能性があります。しかし、私たちのアーティストチームが以前と同じ方法で作業を続けることができるように、別の方法でそれを行うことを好みます.

お時間を割いていただき、ありがとうございました。

4

1 に答える 1

0

あなたの質問への答えはイエスです。JSFL はあなたのためにこれを行うことができます。例を挙げて、何が起こっているのかを説明するために、できるだけ jsfl コードにコメントしてみます。明確な質問があればお気軽にお尋ねください。

そのため、FLA ファイルをすべて保持する他の多くのフォルダーを含むフォルダーがコンピューター上にあると仮定しましょう。このコードは、メインの格納フォルダー内のすべてのフォルダーをループ処理します。これを「allFLAs」と呼び、「allSWFs」というフォルダーに出力します。以下のコードは、allFLA の元のフォルダーを allSWFs 内に保持します。したがって、FLA ファイルが allFLAs/group1/file1.fla にある場合、allSWF には allSWFs/group1/file1.swf があります。これは、同じ名前のファイルがある場合に、それらが互いに上書きしないようにするためです。+ dirList[n] を exportSWF 行から削除するだけで、すべての 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 に答える