[ID CC-CC2021] Выбор прямоугольного фрейма

Dark_Nir

Участник
Топикстартер
Сообщения
4
Реакции
0
Добрый день. Только начал изучать по видеоурокам и поиску по форуму написание скриптов, так как понадобилось написать для себя небольшой "конструктор" карт для настольной игры.
Столкнулся со следующими вопросами:
1) Как пописать (выбрать) определённый прямоугольный фрейм? Текстовый фрейм по имени я нашёл как выбрать activeDocument.textFrames.itemByName("Zagolovok"), а как аналогичным образом выбрать прямоугольный фрейм, в которое вставляется изображение?
2) Как определить, что текстовый и прямоугольный фрейм пустой? Буду загружать данные из таблицы через "Объединение данных", и в некоторых ячейках будет присутствовать текст или изображение, а некоторых нет. И нужно, чтобы в те, которые пустые применялось другое условие.
3) Как посчитать количество строк в текстовом фрейме? Опять же, так как данные из таблицы будут загружаться, то часть"заголовок" будет идти в одну строку, а часть в две строки. И чтобы те, которые идут в две строки применять другое форматирование, чтобы влезли красиво в нужный размер.
Извиняюсь за большое количество вопросов и заранее благодарен за ответы.
 
Последнее редактирование:

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Извиняюсь за большое количество вопросов
Комментарий модератора: Когда получите ответы на эти вопросы, у Вас наверняка возникнут новые. Для новых вопросов создавайте новые темы по принципу «Один вопрос — одна тема».
 
  • Спасибо
Реакции: bossrus

bossrus

шибка умный, аднака
12 лет на форуме
Сообщения
447
Реакции
74
навскидку:
1) Как пописать (выбрать) определённый прямоугольный фрейм? Текстовый фрейм по имени я нашёл как выбрать activeDocument.textFrames.itemByName("Zagolovok"), а как аналогичным образом выбрать прямоугольный фрейм, в которое вставляется изображение?
так же.
Код:
activeDocument.rectangles.itemByName("Zagolovok")
2) Как определить, что текстовый и прямоугольный фрейм пустой? Буду загружать данные из таблицы через "Объединение данных", и в некоторых ячейках будет присутствовать текст или изображение, а некоторых нет. И нужно, чтобы в те, которые пустые применялось другое условие.
Код:
if (activeDocument.rectangles[0].allGraphics.length==0) {значит картинок нет}
if (activeDocument.textFrames[0].texts.length==0) {значит текстовый бокс пустой}
3) Как посчитать количество строк в текстовом фрейме? Опять же, так как данные из таблицы будут загружаться, то часть"заголовок" будет идти в одну строку, а часть в две строки. И чтобы те, которые идут в две строки применять другое форматирование, чтобы влезли красиво в нужный размер.
где-то тут в темах был разбор как считать количество строк
 
Последнее редактирование:
  • Спасибо
Реакции: Dark_Nir

_MBK_

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

Dark_Nir

Участник
Топикстартер
Сообщения
4
Реакции
0
Еще можно contents проверять на пустоту
if (textFrames[0].contents.length==0)

Получилось, но работает странно. Если фрейм изначально пустой, так как в него не попали данные, то он всё равно будет считаться как непустой. Если в него руками занести данные, то он начнёт понимать, что он действительно не пустой. И вот после того, как данные из него удалить, тогда он поймёт, что и правда пустой. А можно ли сразу заставить думать, что он пустой?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Так вы посмотрите что в contents это ж строка
 

Dark_Nir

Участник
Топикстартер
Сообщения
4
Реакции
0
Так вы посмотрите что в contents это ж
Так в том то и дело, что ничего) Только синяя решетка, но она тут как я понял не влияет.
Провёл ещё один опыт. Так как я загружаю данные из таблицы, то в этом текстовом фрейме изначально хранится название столбца, от куда данные берутся (например <<Столбец1>>). Так вот, если это от туда удалить, то есть изначально сделать фрейм пустой, и сделать "Объединение данных", то она сразу определяется как пустая. А если как раз таки оставить <<Столбец1>>, и при "Объединении данных" туда ничего не попадёт - то фрейм будет пустой, но определяться как не пустой. Может как раз в этом дело?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Хорошо, а если количество слов проверять? Допустим, если words.length нулевое то фрейм пустой
 
  • Спасибо
Реакции: Dark_Nir

Dark_Nir

Участник
Топикстартер
Сообщения
4
Реакции
0
Хорошо, а если количество слов проверять? Допустим, если words.length нулевое то фрейм пустой
Да, это помогло. Тоже думал подобное проверить, только не количество слов, а символов, но не успел найти.
Спасибо большое!
 

_MBK_

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