Приветствую всех.
Есть скрипт, который подрезает текст во фрейме в зависимости от названия файла индизайна. Так как только только начал разбираться в скриптописании, не могу толком понять, что да как он делает, пожалуйста опишите, что делает каждая строчка. И ещё один вопрос как сделать зависимость не от названия документа, а от номера страницы, на которой расположен выделенный текстовый фрейм?
Ниже текст скрипта...
Есть скрипт, который подрезает текст во фрейме в зависимости от названия файла индизайна. Так как только только начал разбираться в скриптописании, не могу толком понять, что да как он делает, пожалуйста опишите, что делает каждая строчка. И ещё один вопрос как сделать зависимость не от названия документа, а от номера страницы, на которой расположен выделенный текстовый фрейм?
Ниже текст скрипта...
Код:
var daysOfWeek = [
"Понедельник",
"Вторник",
"Среда",
"Четверг",
"Пятница",
"Суббота",
"Воскресенье"
]
with(app) {
try { var myDoc = activeDocument; } catch(error) { exit(); }
var myDay;
try {
var myDayOfWeek = myDoc.textFrames.itemByName("sDay").contents;
for(var i=0; i<daysOfWeek.length; i++) {
if(myDayOfWeek.toLowerCase() == daysOfWeek.toLowerCase())
myDay = i;
}
} catch(error) { alert("Не найдены фреймы с меткой sDay."); exit(); }
if(!selection.length) exit();
for(var mySelectionCounter=0; mySelectionCounter<selection.length; mySelectionCounter++) {
if(selection[mySelectionCounter].constructor.name == "TextFrame") {
myTextFrame = selection[mySelectionCounter];
with(myTextFrame) {
if(parentStory.itemLink) {
myLabelName = parentStory.itemLink.name.replace(/^\(R\)/, "").replace(/^(.+)\.(.+)$/, "s$1");
try {
var myTargetFrame = myDoc.textFrames.itemByName(myLabelName);
myTargetFrame.parentStory.contents = cropTheDay(myTextFrame, myDay);
} catch(error) {
alert("Не найден фрейм с меткой "+myLabelName);
}
} else {
alert("C выбранным фреймом не связан текстовый файл. ")
}
}
}
}
}
function cropTheDay(myTextFrame, myDay) {
var copyText = false;
var newText = "";
var myDayText = new RegExp("^"+daysOfWeek[myDay].toLowerCase()+", ");
if(myDay != 6) {
var myNextDayText = new RegExp("^"+daysOfWeek[myDay+1].toLowerCase()+", ");
}
with(myTextFrame.parentStory) {
//~ $.writeln(paragraphs.length);
for(var myParagraphCounter=0; myParagraphCounter<paragraphs.length; myParagraphCounter++) {
myParagraph = paragraphs[myParagraphCounter];
with(myParagraph) {
if(myDayText.test(contents.toLowerCase())) {
copyText =true;
continue;
}
if(myDay != 6 && myNextDayText.test(contents.toLowerCase())) copyText =false;
if(copyText) newText += contents;
}
}
return newText;
}
}
Последнее редактирование модератором: