}
else {
myError(noObj ects)}
}
else{
myError(noOpenDocuments)
}
noObjects = "На развороте нет никаких объектов"; noOpenDocuments = "Нет ни одного открытого документа.
Перед запуском скрипта убедитесь, что открыт хотя бы один документ" Как видите, использование функций до предела упростило читабельность кода и сделало более наглядным логику скрипта, который состоит из отдельных шагов: отображение диалогового окна и сбор данных, выбор необходимых типов объектов; выдача предупреждения, если объектов заданного типа не оказалось или скрипт был запущен, когда не был открыт ни один документ.
А теперь определяем использованные функции.
function myDisplayDialog(){ var myDialog;
11 Создаем пользовательское окно
with(myDialog = app.dialogs.add({name:"SelectObjects"})){ with(dialogColumns.add()){ with(borderPanels.add()){
staticTexts.add({staticLabel:"Select:"}); Вид используемого селектора зависит от степени функциональности скрипта. Если можно ограничиться выбором лишь какого-то определенного типа объекта, то достаточно создать раскрывающийся список- он не допускает множественного выделения. Однако увеличим функциональность, предусмотрев множественный выбор типов - чтобы была возможность выбора не только, скажем, прямоугольников, но и контейнеров, содержащих импортированную графику и т. п. В таком случае используем элементы интерфейса - флажки:
with(dialogColumns.add()){ var myRectanglesCheckbox = 'b
checkboxControls.add({staticLabel:"Rectangles", 'b checkedState:true}); var myEllipsesCheckbox =
checkboxControls.add({staticLabel:"Ellipses", checkedState:true}); var myPolygonsCheckbox = 'b
checkboxControls.add({staticLabel:"Polygons", checkedState:true}); var myGraphicLinesCheckbox = 'b
checkboxControls.add({staticLabel:"Graphic Lines", 'b checkedState:true}); var myTextFramesCheckbox = 'b
checkboxControls.add({staticLabel:"Text Frames", checkedState:true}); var myGroupsCheckbox = 'b
checkboxControls.add({staticLabel:"Groups", 'b checkedState:true}); var mylmagesCheckbox = 4>
checkboxControls.add({staticLabel:"Images", checkedState:true}); var myPDFsCheckbox =
checkboxControls.add({staticLabel:"PDFs", checkedState:true});
var myEPSsCheckbox = 'Ь
checkboxControls. add( {staticLabel: "EPSs", checkedState:true});
}
)
)
}
// Отображение диалогового окна myResult = myDialog.show(); if (myResult){
var myObjectTypes = new Array;
// Сбор данных из диалогового окна и сохранение их
if (myRectanglesCheckbox.checkedState == true){ myObjectTypes.push("rectangles");
)
if(myEllipsesCheckbox.checkedState==true){ myObjectTypes.push("ovals");
)
if(myPolygonsCheckbox.checkedState==true){ myObj ectTypes.push("polygons");
)
if (myGraphicLinesCheckbox. checkedState=true) { myObj ectTypes.push("graphicLines");
)
if(myTextFramesCheckbox.checkedState=true)( myObj ectTypes.push("text Frames") ;
)
if (myGroupsCheckbox.checkedState=true) { myObj ectTypes.push("groups");