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