Скрипт для выбора объектов одинаковой ширины и высоты (Adobe Illustrator)

#javascript #adobe-illustrator

Вопрос:

Я пытаюсь создать скрипт, который может выбирать объекты тех же размеров, что и выбранный объект.

До сих пор у меня есть это, которое не выдает никаких ошибок, но и не работает. Кто-нибудь может помочь мне это исправить? Я новичок в написании сценариев в Illustrator, поэтому я даже не знаю, как проверить, получает ли он ширину/высоту от выбранного в данный момент объекта. Большое спасибо!

 var docRef=app.activeDocument;  var objWidth = app.selection[0].width; var objHeight = app.selection[0].height;  var selectionArray = 0; var str = 0;  var items = docRef.pageItems; var n = items.length;  for ( i = 0; i lt; n ; i   ) {  var item = items[i];  if ( item.width == objWidth  amp;amp; item.height == objHeight )  {  selectionArray [ selectionArray.length ] = item;  } }  

Комментарии:

1. selectionArray [ selectionArray.length ] = item; это работает, но выглядит странно и, вероятно, не очень эффективно. Обычно, если вы хотите добавить элемент в массив, вы можете использовать push() метод: selectionArray.push(item);

2. Итак, вы получили ответ?

3. Отклонено, так как нет обратной связи от OP.

Ответ №1:

Вам нужно изменить строку:

 var selectionArray = 0;  

с:

 var selectionArray = [];  

И массив будет создан нормально.

Но что вы хотите сделать с этим массивом? Если вы хотите выбрать все элементы этого массива, вы должны добавить в конце кода эту строку:

 app.selection = selectionArray;  

Если вы хотите проверить значение для отладки кода, вы можете использовать эту alert функцию. Например:

 alert('width = '   objWidth);  

Он покажет окно с заданным текстом (содержащим значение).:

введите описание изображения здесь