【脚本示例】创建初始化文件夹

【脚本示例】创建初始化文件夹

/**
 * Creates a number of folders (or, if ran as a window, lets you customzie folder names to create)
 * 在项目面板,创建一些文件夹
 * 
 * Based on DefaultFolders by Impudent1 from http://aenhancers.com/viewtopic.php?t=37
 *
 * If run via Window, Shows a UI to set folder names
 * 如果在 窗口-运行脚本 则可以手动设置文件夹内容
 * 
 * If run via File > Script, creates folders from preferences
 * 如果直接运行,则使用默认文件夹名
 * 
 *
 * @author Zack Lovatt <zack@zacklovatt.com>
 * @version 2.0.2
 */

 // 设置默认文件夹名
 (function defaultFolders(thisObj) {
    var defaultFolderNames = [
      "Cross Referenced Solids",
      "Pre Comps",
      "Source Footage",
      "Guides/Adjustment Layers",
      "Render Queue Comps",
      "Work In Progress"
    ];

    /**
     * Creates folders from folderNames array
     *
     * @param {String[]} folderNames Array of folder names to create
     */
    function createFolders(folderNames) {
      for (var ii = 0, il = folderNames.length; ii < il; ii++) {
        var folderName = folderNames[ii];

        if (folderName === "") continue;

        app.project.items.addFolder(folderName);
      }
    }

    /**
     * Gets folder names from prefs (if present), or defaults
     *
     * @returns {String[]} Array of folder names
     */
    function getFolderNames() {
      if (app.settings.haveSetting("DefaultFolderPrefs", "Folder1")) {
        return [
          app.settings.getSetting("DefaultFolderPrefs", "Folder1"),
          app.settings.getSetting("DefaultFolderPrefs", "Folder2"),
          app.settings.getSetting("DefaultFolderPrefs", "Folder3"),
          app.settings.getSetting("DefaultFolderPrefs", "Folder4"),
          app.settings.getSetting("DefaultFolderPrefs", "Folder5"),
          app.settings.getSetting("DefaultFolderPrefs", "Folder6")
        ];
      }

      return defaultFolderNames;
    }

    /**
     * Sets folder names to prefs from parameter
     *
     * @param {String[]} Array of folder names
     */
    function setFolderNames(folderNames) {
      for (var ii = 0, il = folderNames.length; ii < il; ii++) {
        app.settings.saveSetting("DefaultFolderPrefs", "Folder" + (ii + 1), folderNames[ii]);
      }
    }

    /**
     * Creates the UI
     *
     * @param {object} thisObj Environment
     * @returns {Window}       SUI Palette
     */
    function createUI(thisObj) {
      var win = thisObj instanceof Panel ? thisObj : new Window("palette", "Default Folders");

      win.add("statictext", undefined, "Set default project folders.");

      var grpFolders = win.add("group");
      grpFolders.orientation = "column";

      var folderNames = getFolderNames();
      for (var ii = 0, il = folderNames.length; ii < il; ii++) {
        var folderName = folderNames[ii];

        var etFolder = grpFolders.add(
          "edittext",
          undefined,
          folderName
        );

        etFolder.characters = 30;
      }

      var grpMeta = win.add("group");
      grpMeta.orientation = "row";

      var btnOK = grpMeta.add("button", undefined, "Create!");
      btnOK.onClick = function() {
        app.beginUndoGroup("Default Folder Maker");

        var uiFolderNames = [];
        for (var ii = 0, il = grpFolders.children.length; ii < il; ii++) {
          uiFolderNames.push(grpFolders.children[ii].text);
        }

        setFolderNames(uiFolderNames);
        createFolders(uiFolderNames);
        app.endUndoGroup();
      };

      var btnReset = grpMeta.add("button", undefined, "Reset");
      btnReset.onClick = function() {
        for (var ii = 0, il = grpFolders.children.length; ii < il; ii++) {
          var etFolder = grpFolders.children[ii];
          etFolder.text = defaultFolderNames[ii];
        }
      }

      return win;
    }

    var win = createUI(thisObj);

    if (win instanceof Window) {
      var folderNames = getFolderNames();
      createFolders(folderNames);
    } else {
      win.layout.layout(true);
    }
  })(this);

 

给TA充电
共{{data.count}}人
人已充电
AE开发脚本开发

【脚本示例】在2个图层位置中间创建1个空对象

2021-9-22 15:33:18

AE开发脚本开发

【脚本示例】开关选择图层所有属性的表达式

2021-9-22 15:51:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索