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

hulk1776

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 668
Оценка реакций
8 430
Напишите полностью код обращения к контенту.
 

Skvoznyak

12 лет на форуме
Сообщения
3 986
Оценка реакций
1 648
script label так давно не работает, к сожалению. надо перебирать все items и проверять на соответствие label
а то что item или itemByName вернуло - ничего не значит, оно всегда возвращает specifier, что ни напиши. надо проверять свойство isValid
 

MT

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 668
Оценка реакций
8 430
А, вон вы о чем
Кэп подсказывает, что есть свойство label, а есть, таки, name
 

hulk1776

Топикстартер
12 лет на форуме
Сообщения
456
Оценка реакций
14
Не нашел, как наименовать объект в панели Layers. Поэтому буду по ID коннектиться.
 

hulk1776

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

Skvoznyak

12 лет на форуме
Сообщения
3 986
Оценка реакций
1 648
Так все фреймы постоянные. Новые не создаются. Поэтому в случае с моей обложкой IDшкам можно доверять. Хотя name объекта более независимый критерий идентификации. Согласен.
под каждый документ свой скрипт делать, не проще по лейблам пройтись или именам? дел на пару строчек.
 

hulk1776

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

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 668
Оценка реакций
8 430
Чисто идеологически name более конструктивно
Лично я бы не стал ставить на то, что индизайн свято будет блюсти один и тот же id при всевозможных копированиях-пересохранениях
Вдобавок, name прекрасно видно невооруженным глазом, в отличие от id и опять же, меняется легко
 

MT

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