var myTF = app.activeDocument.textFrames.item("tv_111_1");
try {myTFId = myTF.id; alert("есть");}
catch(e){alert("error");}
Ага, понятно. Я через ESTK его запускал, он и не "ругался".
Определить наличие фрейма можно еще, обратившись к его ID (это уникальный номер для каждого объекта):
PHP:var myTF = app.activeDocument.textFrames.item("tv_111_1"); try {myTFId = myTF.id; alert("есть");} catch(e){alert("error");}
myRectangle = myDocument.rectangles.item("1_1").select();
//Для версии CS 5 делаем переименование из label в название элементов в палитре слоев
for(var i = 0; i < app.activeDocument.allPageItems.length; i++)
if(!app.activeDocument.allPageItems[i].name) app.activeDocument.allPageItems[i].name = app.activeDocument.allPageItems[i].label;
var myRes = "";
var countRenames = 0;
for(var i = 0; i < app.activeDocument.allPageItems.length; i++){
if(!app.activeDocument.allPageItems[i].name) {
app.activeDocument.allPageItems[i].name = app.activeDocument.allPageItems[i].label;
myRes += app.activeDocument.allPageItems[i].name+"; ";
countRenames++;
}
}
alert ("Имена даны "+countRenames+" объектам:\n"+myRes);
myRectangle = myDocument.rectangles.item("1_1").select();
Скрипт как раз и решает эту задачу - метки, которые раньше записывались в Script Label, он записывает объектам в качестве имен, которые можно увидеть в палитре слоев. Я, конечно, могу чего-то не знать, но по-моему, другого пути нет.Теперь (в ЦС5) эти метки берутся из палитры слоев
Lable или Label?возвращает ошибку на myDoc.TextFrames(ln).Lable мол нет такого свойства у объекта.
Блин очепятался, мой косяк.
Однако d.TextFrames("метка"), как и было уже подмечено в ЦС5 не работает с Script Label.
Спасибо за подсказку с именем в палитре слоёв.
Эксперимент.можно поставить не одну метку, а как бы в следующей строке еще одну и еще
var myDoc = app.activeDocument;
app.scriptPreferences.version = "6.0";
var tf = myDoc.selection[0];
tf.contents = tf.label;
app.scriptPreferences.version = "7.0";
двухстрочная метка — это не две независимых метки, а всё-таки одна