1
我正在为Adobe Illustrator CS6制作扩展脚本(javascript),我需要删除文档的每个剪贴蒙版。如何使用javascript在Illustrator文档中选择和删除每个剪贴蒙版?
我已经有了一个解决方案,但它在大文档中速度不够快。
这里是我的代码:
var releaseClippingMasks = function(document) {
var pathItems = document.pathItems;
log('Looking for clipping masks among ' + pathItems.length + ' elements');
var n = 0;
for(var p = pathItems.length - 1; p >= 0; p--) {
if(p/1000 == Math.round(p/1000)) {
log(p + ' remaining');
}
if(pathItems[p].clipping) { // accessing to the element [p] of pathItems takes a lot of time
pathItems[p].remove();
n++;
}
}
log(n + ' deleted masks');
}
有没有在我的文档这么多剪切蒙版,但很多pathItems的(100000+),所以迭代需要很长的时间。
有谁知道更好的方式来选择JavaScript中的每个剪贴蒙版在文档中? 任何帮助将不胜感激。
是否在你的插画环境'everyItem()的getElements()'的作品吗?对于InDesign,这经常用于将实时集合“分离”到单独的阵列中,因此访问单个项目可以更快。你已经指出这可能是一个候选人。 – usr2564301
在Illustrator环境中没有这样的功能。我刚刚尝试使用InDesign,但我也没有找到它。无论如何,如果我们设法获得数组中的每个元素,则应该对每个元素进行迭代以找到具有剪切蒙版的人。 – superrache