Label script

  • Автор темы Автор темы FlintOFF
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

FlintOFF

Участник
Топикстартер
Сообщения
52
Реакции
0
Добрый день народ.
Создал текстовый фрейм
PHP:
var my_doc=app.activeDocument;
firstPage=my_doc.pages[0]
//Создаем папки
with (firstPage)
{
    textFrames.add({geometricBounds: Array(0,0, "10 mm", "10 mm"), contents: "Hello"});
    
}
Как теперь к текстовому фрейму вписать идентификатор "Новость 1" через Label script (у меня в индизайне написано "Ярлык сценария")
 
Ответ: Label script

PHP:
var myTF = textFrames.add({geometricBounds: Array(0,0, "10 mm", "10 mm"), contents: "Hello"});
myTF.label = "Новость 1";
 
Ответ: Label script

Пипец!!!
Спасибо Вам. Подозревал что легко но чтоб на столько :) Спасибо

А как мне перейти к текстовому фрейму с лайбой "Новость 2". Я думаю что тут нужно перебрать все фреймы на странице на наличия соответствия с лайбой "Новость 2", или можно непосредственно обратится както?
 
Ответ: Label script

Супер.
Спасибо.
Завтро буду переписывать часть кода отвечающию за експорт страниц. Дело в том что реальная нумерация не соответствует нумерации в газете. А лейбл как раз помагает найти фрейм в котором стоит нужный мне номер страницы.
Раньше я все фреймы перебирал :) Ну а теперь...

Тогда для полного счастья можно пример на подсчет сколько фреймов с "Новость 2" в документе, и как удалить один или все фреймы с данным лейблом.

P.S. купил я себе книгу по скриптам для индизайна, что много ошибок в кодах, что данной темы вобще нету.
 
Ответ: Label script

пример на подсчет сколько фреймов с "Новость 2"
Ну, можно пойти таким путем.
PHP:
app.activeDocument.textFrames.item("Новость 2").select();
var mySel = app.activeDocument.selection;
var mySelCount = mySel.length;
А как удалить — давайте сами, ESTK открывайте и объектную модель читайте :)
 
Ответ: Label script

Спасибо огромное за помощ.
Наверное за последние годы ето первый раз когда на форуме действительно решают вопрос, а не посылают гуглить и фак читать.
 
Ответ: Label script

Не за что. Только вот формулировку задачи осилить не удалось:). Что там не так со страницами настолько, что без скрипта никак?
 
Ответ: Label script

Скрипт у меня есть расстановки телепередачи, рабочий. Вот только он мне не может сказать что уже поставлено а что нет. Например 20 каналов расставленых, что б остальных 20 не искать в списке то скрипт сам их поделит на два списка, одни расставленые а другие нет.
Интерфейс так сказать умный нужно сделать.
Думаю сегодня ето получится сделать.
А удалять нужно потому что работаем то с одним файлом каждую неделю, там меняется реклама, даты. И нужно каждый раз телепередачу удалять, если подписать ярликом каждый фрейм, то одним кликом можно удалить всю старую передачу.
 
Ответ: Label script

Алгоритм до конца не понял, в частности эту часть:
20 каналов расставленых, что б остальных 20 не искать
Ну да ладно, это Ваш алгоритм, наверное Вы знаете, как Вам надо.
Посоветую лишь обратить внимание, что возможно удобнее было бы удалять не сами фреймы, а только их содержимое (это решается через contents), попутно снимая label с фрейма. Но, опять же, Вам виднее.
 
Ответ: Label script

Такой вопрос.
Пытаюся обратится к элементу которого нету в документе app.activeDocument.textFrames.item("Новость 2") выдает ошибку.
Пробую через try и через if(typeof(a)=='undefined')
Не выходит.
Подскажите чем можно воспользоватся, а то в PHP все проще, ISSE(), а вот для javaScript не получается
 
Ответ: Label script

PHP:
try{
здесь то, что пытаемся сделать
}
catch(e){} // Скобки оставить пустыми, если в случае ошибки ничего не предпринимать.
 
Ответ: Label script

Добрый день.
Вот написал проверку установленных каналов.
Только одно но.
Когда я обращаюся app.activeDocument.textFrames.item("tv_"+all_client_channels[n]+"_"+i).select();
и перебираю 20 штук (по 7 дней каждый), то много времени уходит (секунд 20-30).
Можно узнать наличие фрейма (с ярлыком "tv_20_1") в документе не выделяя его при этом?
PHP:
var my_doc=app.activeDocument;
firstPage=my_doc.pages[0]
//Создаем папки
var all_client_channels=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43); 
var not_placed;
with (firstPage)
{
    channels_length = all_client_channels.length;
    for(n=0;n<=channels_length;n++)
    {
        for(i=1;i<=7;i++)
        {
            try{app.activeDocument.textFrames.item("tv_"+all_client_channels[n]+"_"+i).select();}
            catch(e){not_placed=not_placed+all_client_channels[n]+"_"+i+", ";} // Скобки оставить пустыми, если в случае ошибки ничего не предпринимать.  
        }
    }

}  
alert(not_placed);
 
Ответ: Label script

Можно узнать ниличие фрейма (с ярлыком "tv_20_1") в документе не выделяя его при етом?
С ходу не нашел, хотя, скорее всего, можно.
много времени уходит (секунд 20-30).
Ну не Вы же вручную это делаете, а машина пусть работает сколько ей надо. :)
 
Ответ: Label script

Пробовал app.activeDocument.textFrames.item("tv_"+all_clien t_channels[n]+"_"+i);
Выдает ошибку.

Ну не Вы же вручную это делаете, а машина пусть работает сколько ей надо.
Ситуация такая, мы с напарником делаем программу, в течении двух дней (она приходит по частям) и тутже ее расставляем (когда свободная минута есть). Показал ему пример работы скрипта, он меня зафукал, говорит что такое счастье ненужно, и он прав ведь на 10 каналов еще терпимо, а на 40...

Eugenyus если найдешь способ - буду благодарен, если нет то и ничего страшного.
 
Ответ: Label script

Если такой фрейм есть то ошибки никакой нет.
В противном случае выдает 45 ошибку "недопустимый обьект"

PHP:
var my_doc=app.activeDocument;
firstPage=my_doc.pages[0]
with (firstPage)
{
 try{app.activeDocument.textFrames.item("tv_111_1");}
 catch(e){alert('error');}  
}
 
Ответ: Label script

Ну так и действуйте через "try". Пройдет без ошибок — фрейм есть. Будет ошибка — фрейма нет. Соответственно и дальнейшие действия ему прописывайте.
В try можно вообще весь кусок загнать, типа что делать, если фрейм найден.
 
Ответ: Label script

Eugenyus боюсь ты меня не понял, я и так действую черех "try", и через него выдает ошибку.
По идее "try" должен гасить ошибки через catch(e){alert('error');, а на практике выводится ошибка явоскрипта №45.
 
Статус
Закрыто для дальнейших ответов.