[AE脚本]批量删除表达式

[AE脚本]批量删除表达式

表达式批量删除脚本。如果选择特定属性,只删除该属性的表达式。如果选择图层,则删除图层设置的所有表达式。

如果把它放在 ScriptUI Panels 文件夹中,它有一个 UI,如果你把它放在 Scripts 文件夹中,可以在没有 UI 的情况下工作。

/*-------------------------------------
Select Parents N Children

Version History
1.0.1 [Current version]  -  Aug 16, 2021
    Change file name.

1.0.0  -  Aug 13, 2021
    Initial release
-------------------------------------*/

//______Files Path______
var thisFile = new File(this);
var thisFolderPath = thisFile.path;
var resourcePath = thisFolderPath + "/Remove Expressions Resources"
//______Build Main Panel______
function buildUI(thisObj){
    if(thisObj instanceof Panel){
        var win = thisObj;
    }else{
        /*
        var win = new Window("palette", "Remove Expressions", [0, 0, 116, 236], {resizeable:true})
        win.center();
        win.show();
        */
        removeExpressions();
    }       
    return win;
}

try{
    var win = buildUI(this);
    var buttonRect = [0, 0, 100, 30];
    var panelButtonSpace = [5, 5, 5, 5];
    var buttonSpace = [55, 0, 55, 0];
    var buttonA = win.add("Button", panelButtonSpace + buttonRect, "Remove!");

    function removeExpressions(){
        app.beginUndoGroup("Remove all Expressions");

        var comp = app.project.activeItem;
        var layerNumber = comp.selectedLayers.length;
        var slLayers = comp.selectedLayers;
        var slProp;
        var propNumber;

        if(layerNumber >= 1){
            for(var i = 0; i < layerNumber; i++){
                if(slLayers[i].selectedProperties.length >= 1){
                    deleteAllExpMenuCmd();
                }else{
                    var layerNames = slLayers[i].index;
                    recurse_children(comp.layers[layerNames]);
                }
            }
        }else{    
            alert('no layer selected');
        }

        function deleteAllExpMenuCmd(){
            slProp;
            for(var i = 0; i < layerNumber; i++){
                for(var k = 0; k < slLayers[i].selectedProperties.length; k++){
                    slProp = slLayers[i].selectedProperties[k];
                    if(slProp.canSetExpression && slProp.expression) slProp.expression = '';
                }
            }
        }

        function recurse_children(propParent){
            if(propParent != null){
                var prop;
                for(var i=1; i<=propParent.numProperties; i++){
                    prop = propParent.property(i);
                    switch(prop.propertyType)
                    {
                    case PropertyType.PROPERTY:
                        // do action
                        if(prop.canSetExpression && prop.expression) prop.expression = '';
                        break;
                    case PropertyType.INDEXED_GROUP:
                        recurse_children(prop);
                        break;
                    case PropertyType.NAMED_GROUP:
                        recurse_children(prop);
                        break;
                    default:
                        break;
                    }
                }
            }
        }
        app.endUndoGroup();
    }

    buttonA.onClick = function(){
        removeExpressions();
    }

}catch (e){
}
//try catch <-- To make it work even if you don't have it in ScriptUI Panels.

 

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

【AE脚本】图层批量位移 | 朝仓 | 免费

2021-9-10 14:01:24

AE开发脚本开发

“向下”复制图层

2021-9-10 14:07:51

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