在徽标周围找到 Space 并在 space 中出现任何页面项目时发出警报

Find Space around logo and alert if any pageitem present in that space

我正在尝试查找徽标附近或周围的任何物体。

通过将徽标高度的 1/3 添加到其边界并将所有页面项目与边界进行比较。

如何跳过图形的父对象link?对于下面的脚本 这是脚本:

function _clear_space_around_logo(){  
    var myDoc = app.activeDocument;
    var myPages = myDoc.pages;
    for(var a=0;a<myPages.length;a++){
        var myGraphics = myPages[a].allGraphics;
        for(var b=0;b<myGraphics.length;b++){
            if(myGraphics[b].itemLink != null){
                if(myGraphics[b].itemLink.name.search(/Logo/i)>0){
                    if(myGraphics[b].parent.rotationAngle == 0 || myGraphics[b].parent.rotationAngle == 180){
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo2-geo0)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    else{
                        var geo0 = myGraphics[b].geometricBounds[0];
                        var geo1 = myGraphics[b].geometricBounds[1];
                        var geo2 = myGraphics[b].geometricBounds[2];
                        var geo3 = myGraphics[b].geometricBounds[3];
                        var requiredHeight = (geo3-geo1)/3;
                        var reuqiredGeo0 = geo0-requiredHeight;
                        var reuqiredGeo1 = geo1-requiredHeight;
                        var reuqiredGeo2 = geo2+requiredHeight;
                        var reuqiredGeo3 = geo3+requiredHeight;
                    }
                    var myPagesItems = myPages[a].allPageItems;
                    for(var c=0;c<myPagesItems.length;c++){
                        if(myPagesItems[c].itemLayer.visible == true && myPagesItems[c].visible == true){
                            var itemGeo0 = myPagesItems[c].geometricBounds[0];
                            var itemGeo1 = myPagesItems[c].geometricBounds[1];
                            var itemGeo2 = myPagesItems[c].geometricBounds[2];
                            var itemGeo3 = myPagesItems[c].geometricBounds[3];
                            
                            if(itemGeo0>myPages[a].bounds[0] && itemGeo1>myPages[a].bounds[1]&&
                                itemGeo2<myPages[a].bounds[2] && itemGeo3<myPages[a].bounds[3]){
                                if(itemGeo2 > reuqiredGeo0 && itemGeo3 > reuqiredGeo1 &&
                                    itemGeo0 < reuqiredGeo2 && itemGeo1 < reuqiredGeo3){
                                    if(myPagesItems[c].constructor.name != "Group"){
                                        try{
                                            if(myPagesItems[c].itemLink.name.search(/Logo/i)==-1){
                                                alert(myPages[a].name);
                                            }
                                        }
                                        catch(e){
                                            alert(myPages[a].name);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

谢谢

@brianp311

存储父容器的 ID,检查时跳过它。

var pid = myGraphics[b].parent.id;

然后...

if (myPageItems[c].id == pid) 继续;