Рандомная сортировка элементов

Поделиться
Отправить
Плюсануть
Класснуть

Привет!

Сегодня поговорим о интересном баге или фиче, который(ая) появляется при открытом диалоговом окне скрипта. Например, в вашем скрипте, вы хотите чтобы выделенные объекты были расставлены в случайном порядке, как это можно сделать: менять позицию объекта в панели Layers, т.е. использовать метод ZOrderPosition.

Тут, как раз таки, и всплывает баг или фича, если вы несколько раз прогоните метод ZOrderPosition и измените его, может случится так, что некоторые выделенные элементы потеряют выделение, мало того, если даже эти элементы были у вас записаны в переменную массив, они тоже будут удалены из этой переменной массива. Поэтому в данной случае нужно использовать другой подход.

Решение простое и логичное, но бывает так что побродишь по форумам и наткнёшься на решение с сортировкой по ZOrderPosition, и подумаешь что это то что нужно, а на самом деле это заблуждение, если речь не идет про рандомную смену позции в панели Layers.

Итак решение, мы просто должны менять позицию не в панели Layers (методом ZOrderPosition), а просто миксовать объекты в массиве переменной, т.е. оперируем исключительно массивов, не трогаем объекты в самом illustrator, т.к. при изменении позиции в панели Layers (методом ZOrderPosition) иллюстратор запускает перерисовку документа, и в следствии чего, могут произойти различные баги, т.к. мы работаем из диалогового окна.

Итого: оперируйте исключительно массивом объектов, не трогайте метод ZOrderPosition

Замечание: при решении, с помощью метода ZOrderPosition, может быть так, что всё будет работать как надо, а может и нет (в скриптиге Adobe illustrator бывает много !! случайного !!)

Предыдущий проект Изменение монтажной области с содержимым в Adobe Illustrator
Следущий проект Как сделать preview в диалоговом окне - Adobe Illustrator scripts

Контакты

work@ladygin.pro