[AI CS4-CS6] Как сделать разноцветный текст в области

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
  • Спасибо
Реакции: keramer82

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Я думаю для мои целей подойдет и вариант с GrayColor. Осталось решить только одно: как можно переименовать плашечный цвет, уже присутствующий в документе? Может кто знает, подскажите кодом пожалуйста.
Пробовал так, не помогает.
JavaScript:
//Находит пантон, которому нужно поменять название
var Spot_1_Color = docRef.swatches["Spot_1"].color;
//Почему-то не меняет название, хотя ошибок не возникает.
Spot_1_Color.name = "Spot_2";
 

Gad

Сообщения
2 975
Реакции
1 408
JavaScript:
//Находит пантон, которому нужно поменять название
var Spot_1_Color = docRef.swatches["Spot_1"];
//Почему-то не меняет название, хотя ошибок не возникает.
Spot_1_Color.name = "Spot_2";
 

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Не могу понять, как правильно.
Это не работает:
Spot_1_Color.getByName("Spot_2");
Это тоже:
Spot_1_Color.name = getByName("Spot_2");
Если несложно, подскажите, пожалуйста, как именно кодом это написать.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Код:
var mySpot=activeDocument.spots.getByName(...)
mySpot.name=...
 

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Я, видимо, опять не вижу очевидного... Но перепробовал уже всякие разные варианты, не получается. По ссылке, там добавляют пантон, потом еще один пантон. А мне нужно найти конкретный пантон и поменять ему имя. Находить я его нахожу:
var Spot_Color = docRef.swatches["Spot"].color;
Как кодом поменять имя с "Spot" на "new_Spot"?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Я, видимо, опять не вижу очевидного... Но перепробовал уже всякие разные варианты, не получается. По ссылке, там добавляют пантон, потом еще один пантон. А мне нужно найти конкретный пантон и поменять ему имя. Находить я его нахожу:
var Spot_Color = docRef.swatches["Spot"].color;
Как кодом поменять имя с "Spot" на "new_Spot"?
Вы немного путаетесь в модели. (Это простительно, ибо постичь логику индусов очень сложно без употребления специальных веществ)
Для представления цветов в модели есть три независимых класса - Color, Spot и Swatch, они тесно друг с другом связаны.
 

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Второй раз в жизни попробовал написать скрипт для иллюстратора, чтобы немного освободить себе времени, и второй раз не смог сделать последнее действие, опять глухой забор. Сам я этот синтаксис нигде не найду, слишком слабое владение американским языком, а в русскоязычном сегменте нашел только вас, и то не помогло... Придется, видимо и дальше вручную все это делать...
 

_MBK_

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

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
'otbline'
Вот это работает! Правда я так и не понял почему...
JavaScript:
var Spot_Color = docRef.swatches["Spot"].color;
var mySpot = docRef.spots.getByName("Spot");
mySpot.name="newSpot";
Большое спасибо за помощь!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Правда я так и не понял почему...
Я тоже не знаю, почему у вас прямое переименование свотча не работает. Вообще name у свотча не r/o более того, даже в доке пример есть переименования:
1646289088173.png

Попробуйте этот пример - работает?
 

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Честно говоря, боюсь что трогать... Эти несостыковки никогда не закончатся. Я до этого пробовал менять шрифт, все прекрасно работало и я был спокоен за эту часть. Как оказалось совершенно зря я был спокоен. Сейчас не могу сделать смену шрифта на "Arial CA" (bold). Притом, что на шрифт "Impact" отлично меняется.
Вот так работает:
JavaScript:
var fontStyle = textRef.textRange.characterAttributes;
fontStyle.textFont = app.textFonts.getByName("Impact");
А Вот так нет:
JavaScript:
var fontStyle = textRef.textRange.characterAttributes;
fontStyle.textFont = app.textFonts.getByName("Arial CA");
И вообще не понятно, почему...
 
Последнее редактирование:

_MBK_

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

Gad

Сообщения
2 975
Реакции
1 408
почему у вас прямое переименование свотча не работает
потому что он не свотч переименовывает, а цвет свотча
Я же поправил код... :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ну я и говорю - должна работать, почему не работает непонятно 'hz'
Я тоже не знаю, почему у вас прямое переименование свотча не работает. Вообще name у свотча не r/o более того, даже в доке пример есть переименования
 

keramer82

Участник
Топикстартер
Сообщения
52
Реакции
3
Вот на этом останавливается, но мне эта информация ни о чем не говорит.
Снимок.JPG
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Обратите внимание на надпись в нижнем левом углу No such element
В переводе на человеческий это означает "нет такой буквы шрифта"
 
  • Спасибо
Реакции: keramer82