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

hulk1776

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

_MBK_

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

Skvoznyak

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

MT

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

_MBK_

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

hulk1776

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

hulk1776

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

Skvoznyak

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

hulk1776

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

_MBK_

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

MT

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