[ID CC2025] Как быстро обрабатывать все группы в скрипте?

iGrey

Топикстартер
12 лет на форуме
Сообщения
145
Реакции
14
Здравствуйте.

Есть задача: всем группам в верстке присвоить определенные параметры.
Сейчас делаю так:

JavaScript:
for (j = 0; j < allPageItems.length; j++) {
           MyItem =  allPageItems[j];
           if (MyItem instanceof Group)
            with (MyItem.objectExportOptions) {
                ......
            }
            }

Но при количестве объектов ~20000-30000 цикл крутится очень долго.

Может есть какой-то более быстрый доступ ко всем группам?
Googl и ИИ не помогли :(.
 
Перебирать Document.groups вместо allPageItems?
Новые вводные.
Группы являются заякоренными объектами :(.
В Document.groups - их нет.
Document.groups.length = 0;
А отдельной коллекции под заякоренные объекты я так понимаю не предусмотрено?
1743413853233.png

Значит только перебором всей кучи?
 
Тогда попробуйте перебирать pageItems отдельно для каждой страницы. Если конечно страниц больше одной. Со скоростью перебора немного полегчает.
 
  • Спасибо
Реакции: iGrey
Если группы заякорены в текстовых фреймах, тогда можно перебирать Document.textFrames. В textFrame есть свойство
groups, там будут заякоренные группы.
 
  • Огонь
  • Спасибо
Реакции: Flame и iGrey
Если группы заякорены в текстовых фреймах, тогда можно перебирать Document.textFrames. В textFrame есть свойство
groups, там будут заякоренные группы.
Да. Вот это классное решение.
Ускорился раз в 10!
Спасибо.