[AI CC-CC2021] Вопрос по скриптописанию

eugeny

15 лет на форуме
Сообщения
858
Реакции
210
Ну зачем же так?
Но ведь есть же еще, как это грустно звучит, метод getByName и для Spots
Да я здесь немного в ступор впал. Задача же пока абстрактная. По идее, если такой спот есть его надо удалить, и создать по новой с нужными параметрами, а вдруг не надо удалять '%)'?
Просто я не проверил, выдает getByName при отсутствии спота ошибку или нет. Если выдает, то надо обработать ошибку.

Как сделать его глобалом ?
Создаешь процесс спот, как я написал в примере, он и есть глобал.
 

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
типа Try {}
catch{}
?
 

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
так даже интереснее
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Просто я не проверил, выдает getByName при отсутствии спота ошибку или нет. Если выдает, то надо обработать ошибку.
Выдает
118858

Но ошибка вполне себе обрабатывается. Вдобавок я все же до конца не пойму какая сакральная необходимость искать у удалять споты и свотчи?
 

eugeny

15 лет на форуме
Сообщения
858
Реакции
210
Выдает
Посмотреть вложение 118858
Но ошибка вполне себе обрабатывается. Вдобавок я все же до конца не пойму какая сакральная необходимость искать у удалять споты и свотчи?
Ну я тоже с этого начинал, думал, так можно потом определить все цвета в макете, но оказалось, что Appearance недоступно из скрипта 'otbline'. С другой стороны чтобы ты потом не делал скриптами в программе, тебе все равно надо уметь хорошо работать с цветом. Поэтому лучше сперва понять, как устроено всё это объектной моделью цвета.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Поэтому лучше сперва понять, как устроено всё это объектной моделью цвета.
По идиотскииндусски устроено, классы Spots и Swatches буквально висят в воздухе, иерархической связи с реальными объектами документа у них нет 'fp'
 

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
Как-то странно все тут устроено, как будто писали классы вообще разные конторы..
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Иллюстратор весь состоит из так называемых сьютов. Вот эти самые сьюты пригнаны друг к другу очень неплотно, частично дополняют, частично дублируют друг друга, а частично натурально сражаются. Их явно писали разные независимые группы индусов
 

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
что-то мне не нравится, на каждый создаваемый цвет крутить проверку.
простые с виду вещи, превращаются в геморрой
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
Очень трудно идет.
Чем дальше в лес, тем сложнее.
Когда пытаешься создать красивый код, получается вообще беда.;

допустим надо создать 6 Spot Swatch
и нарисовать 6 фигур разными цветами.
логично писать функцию на создание спота и функцию на создание объекта.
который бы использовал в качестве аргументов и координаты и цвета заливки и контура.

попробовал, стер, попробовал опять стер.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
Да, не свотч, а споты.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843

ACTPOHOM

Топикстартер
12 лет на форуме
Сообщения
2 981
Реакции
1 133
В общем и целом со спотами получилось, они же и добавляются в палитру сами.
понятно одно, что названия переменным надо хорошо продумываться, что бы были понятными и не путались.

Код:
newSPOTcolor("CUT", 0, 100, 100, 0);
newSPOTcolor("CREASE", 100, 100, 0, 0);


//создание SPOT цвета
function newSPOTcolor(name, c,m,y,k) {

     var newSpot = app.activeDocument.spots.add();
          newSpot.name = name;
          newSpot.colorType = ColorModel.SPOT;
          newSpot.color = new CMYKColor;
          newSpot.color.cyan = c;
          newSpot.color.magenta = m;
          newSpot.color.yellow = y;
          newSpot.color.black = k;
     return newSpot;

}
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Ну вот видишь как все замечательно
Но учти, Spot и SpotColor - это тоже разные классы
Тебе надо из спота делать SpotColor со стопроцентным тинтом и уже им красить объект
118864
 
Последнее редактирование:
  • Спасибо
Реакции: ACTPOHOM

eugeny

15 лет на форуме
Сообщения
858
Реакции
210
Самое лучшее это разобраться, что такое функциональное программирование. Функция -- это объект, которому подаются переменные на вход и всегда ожидаемый результат на выходе. Никакой непредсказуемости. Я по образованию программист, поэтому вообще не пишу обработчиков ошибок, по причине полной предсказуемости действий пользователя. Ну научили меня так... решаю все через функции.
Например: Для присвоения цвета объекту, нужно знать параметр отвечающий у объекта за цвет, определять доступен он или нет для изменения, и потом присваивать цвет. Т.е. у меня конечная функция, т.е. самое мое последнее заднее слово получает параметры цвета: тип цвета, и что с ним делать. Ответ (return) всегда предсказуем.
 
  • Спасибо
Реакции: ACTPOHOM

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 183
Реакции
10 843
Самое лучшее это разобраться, что такое функциональное программирование. Функция -- это объект, которому подаются переменные на вход и всегда ожидаемый результат на выходе. Никакой непредсказуемости. Я по образованию программист, поэтому вообще не пишу обработчиков ошибок
Все это просто замечательно, но, к сожалению, в случае адобовского жабаскрипта это недостижимая роскошь: валидность некоторых операций можно проверить только сгенерировав ошибку. И если в индизайне существует какой то костыль, проверяющий хотя бы валидность обьектов, то в иллюстраторе, фотошопе и не к ночи будет сказано, акробате даже такой возможности нет. А еще в иллюстраторе возможны летальные операции, вызывающие его крэш, такие дела ;)
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
А вот потому что есть в мире программисты, не пишущие обработчиков ошибок - все и крашится)