使用selectedLayers属性过滤文本图层

问题描述 投票:0回答:1

我试图检查图层类型以确保我的函数调用仅适用于所选图层中的文本图层(所选图层的数量是几百个)。看来我在使用typeOf方法时遇到了一些错误。有人可以帮忙吗?

var myComp = app.project.activeItem;
var selectedLayers = myComp.selectedLayers;
var numLayers = selectedLayers.length;

    for(var i=0; i < numLayers; i++){
        var mySourceText = selectedLayers[i].property("ADBE Text Properties").property("ADBE Text Document");
        var myTextDoc = mySourceText.value;
             if (typeOf(selectedLayers[i]) == "TextLayer") {
                mySourceText.setValue(trim(myTextDoc));
            }
     }

function trim(strValue){
    var str = new String(strValue);
    return str.replace(/(^\s*)|(\s*$)/g,"");
}
extendscript
1个回答
1
投票

你想要的正确布尔测试是

if (selectedLayers[i] instanceof TextLayer) {

instanceof,没有引用TextLayer

© www.soinside.com 2019 - 2024. All rights reserved.