[ID CC-CC2021] Как обратиться к фрейму по его Label

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Приписал фрейму, где сидит содержанием этикетку-label.
Стал обращаться
Код:
var mSoderzanie = app.activeDocument.textFrames.item("Soderzanie")
По alert выводит сообщение ObjectTextFrame. Вроде все нормально.
Но дальше работать с ним не дает. В частности получить его contents я не могу. Пишет Object is invalid.
 

_MBK_

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

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
script label так давно не работает, к сожалению. надо перебирать все items и проверять на соответствие label
а то что item или itemByName вернуло - ничего не значит, оно всегда возвращает specifier, что ни напиши. надо проверять свойство isValid
 

MT

15 лет на форуме
Сообщения
246
Реакции
93
Вместо script label удобнее присвоить имя объекту в панели Layers.
Если фрейму присвоить имя "Soderzanie", тогда строка
Код:
var mSoderzanie = app.activeDocument.textFrames.item("Soderzanie")
вернет нужный объект.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
А, вон вы о чем
Кэп подсказывает, что есть свойство label, а есть, таки, name
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Не нашел, как наименовать объект в панели Layers. Поэтому буду по ID коннектиться.
 

_MBK_

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

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Имхо, самый ненадежный способ
Так все фреймы постоянные. Новые не создаются. Поэтому в случае с моей обложкой IDшкам можно доверять. Хотя name объекта более независимый критерий идентификации. Согласен.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Так все фреймы постоянные. Новые не создаются. Поэтому в случае с моей обложкой IDшкам можно доверять. Хотя name объекта более независимый критерий идентификации. Согласен.

под каждый документ свой скрипт делать, не проще по лейблам пройтись или именам? дел на пару строчек.
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
под каждый документ свой скрипт делать, не проще по лейблам пройтись или именам? дел на пару строчек.
Да и так на 3 журнала - 3 набора скриптов. В каждом разные методики. И потом время на определение номера ID (alert(app.selection[0].id) примерно такое же, как на переименование объекта по двойному клику.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Чисто идеологически name более конструктивно
Лично я бы не стал ставить на то, что индизайн свято будет блюсти один и тот же id при всевозможных копированиях-пересохранениях
Вдобавок, name прекрасно видно невооруженным глазом, в отличие от id и опять же, меняется легко
 

MT

15 лет на форуме
Сообщения
246
Реакции
93
Так можно имя фрейму присвоить
Код:
app.selection[0].name = "Soderzanie"

А из другого скрипта по имени обращаться.