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

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Приписал фрейму, где сидит содержанием этикетку-label.
Стал обращаться
Код:
var mSoderzanie = app.activeDocument.textFrames.item("Soderzanie")
По alert выводит сообщение ObjectTextFrame. Вроде все нормально.
Но дальше работать с ним не дает. В частности получить его contents я не могу. Пишет Object is invalid.
 
Напишите полностью код обращения к контенту.
 
script label так давно не работает, к сожалению. надо перебирать все items и проверять на соответствие label
а то что item или itemByName вернуло - ничего не значит, оно всегда возвращает specifier, что ни напиши. надо проверять свойство isValid
 
Вместо script label удобнее присвоить имя объекту в панели Layers.
Если фрейму присвоить имя "Soderzanie", тогда строка
Код:
var mSoderzanie = app.activeDocument.textFrames.item("Soderzanie")
вернет нужный объект.
 
А, вон вы о чем
Кэп подсказывает, что есть свойство label, а есть, таки, name
 
Не нашел, как наименовать объект в панели Layers. Поэтому буду по ID коннектиться.
 
Имхо, самый ненадежный способ
Так все фреймы постоянные. Новые не создаются. Поэтому в случае с моей обложкой IDшкам можно доверять. Хотя name объекта более независимый критерий идентификации. Согласен.
 
Так все фреймы постоянные. Новые не создаются. Поэтому в случае с моей обложкой IDшкам можно доверять. Хотя name объекта более независимый критерий идентификации. Согласен.

под каждый документ свой скрипт делать, не проще по лейблам пройтись или именам? дел на пару строчек.
 
под каждый документ свой скрипт делать, не проще по лейблам пройтись или именам? дел на пару строчек.
Да и так на 3 журнала - 3 набора скриптов. В каждом разные методики. И потом время на определение номера ID (alert(app.selection[0].id) примерно такое же, как на переименование объекта по двойному клику.
 
Чисто идеологически name более конструктивно
Лично я бы не стал ставить на то, что индизайн свято будет блюсти один и тот же id при всевозможных копированиях-пересохранениях
Вдобавок, name прекрасно видно невооруженным глазом, в отличие от id и опять же, меняется легко
 
Так можно имя фрейму присвоить
Код:
app.selection[0].name = "Soderzanie"

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