Портирую скрипт из фотошопа в индизайн. Столкнулся с проблемой.
Код:
Скрытый текст
function main(){
//Здесь указываем данные для диалогового окна. имя, тип, границы (x-begin, y-begin, x-end, y-end) и так далее
var curUI =
"dialog{text:'Guides maker by xdrew',bounds:[100,100,550,330],\
btnOk:Button{bounds:[335,15,435,35] , text:'OK' },\
btnSave:Button{bounds:[335,35,435,55] , text:'Save' },\
btnCancel:Button{bounds:[335,55,435,75] , text:'Cancel' },\
chkProcCurDoc:Checkbox{bounds:[15, 15, 250, 35], text:'Работать с текущим документом', properties:{scrolling:false, multiline:false}, value:true},\
chkSelPreset:Checkbox{bounds:[15, 65, 250, 85], text:'Создать свою раскладку', properties:{scrolling:false, multiline:false}, value:false},\
txtPreset:StaticText {bounds:[15, 40, 115, 60] , text:'Преднастройка', properties:{scrolling:false,multiline:false}},\
lstPreset:DropDownList{bounds:[130, 40, 250, 60]},\
pnlCols: Panel {text:'Колонки',bounds:[15, 100,220,200],\
txtColNum:StaticText {bounds:[15, 18, 135, 35] , text:'Количество колонок', properties:{scrolling:false,multiline:false}},\
etxtColNum:EditText{bounds:[145,15,185,35] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}},\
txtColWidth:StaticText {bounds:[15, 48, 135, 65] , text:'Ширина в пикселях', properties:{scrolling:false,multiline:false}},\
etxtColWidth:EditText{bounds:[145,45,185,65] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}},\
},\
pnlInts: Panel {text:'Интервалы',bounds:[235, 100, 435,200],\
txtIntWidth:StaticText {bounds:[15, 18, 135, 35] , text:'Ширина интервалов', properties:{scrolling:false,multiline:false}},\
etxtIntWidth:EditText{bounds:[145,18,185, 35] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}},\
},\
txtDocWidth:StaticText {bounds:[15, 206, 175, 223] , text:'Расчетная ширина макета:', properties:{scrolling:false,multiline:false}},\
etxtDocWidth1:EditText {bounds:[175, 203, 220, 223] , text:'', properties:{scrolling:false,multiline:false}},\
txtPostWidth:StaticText {bounds:[235, 206, 355, 223] , text:'Поля сверх размера:', properties:{scrolling:false,multiline:false}},\
etxtPostWidth:EditText{bounds:[360, 203, 400, 223] , text:'' ,properties:{multiline:false,noecho:false,readonly:false}},\
}";
//Создаем новое окно с настройками, которые только что определили и центрируем его
curDialog = new Window(curUI);
curDialog.center();
getDocGuidesId(1000);
...
}
function getDocGuidesId(newDocWidth){
if(curDialog.chkProcCurDoc.value == true){
docGuides = app.activeDocument;
}else{
//app.scriptPreferences.userInteractionLevel = UserInteractionLevels.neverInteract;
alert(app.dialogs.length); // выводит 0
alert(app.windows.length); // выводит 0
docGuides = app.documents.add(); // На этой строке выводит ошибку: Cannot handle the request because a modal dialog or alert is active.
with(docGuides){
viewPreferences.horizontalMeasurementUnits = MeasurementUnits.PIXELS;
viewPreferences.verticalMeasurementUnits = MeasurementUnits.PIXELS;
documentPreferences.pageWidth = newDocWidth;
documentPreferences.pageHeight = 800;
}
//app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
}
}
Насколько я понял, ругается на открытый интерфейс. Но ведь ничего не открыто. Я специально вставлял перед этой строкой curDialog.close() для проверки, все равно не отрабатывает. app.scriptPreferences.userInteractionLevel = UserInteractionLevels.neverInteract; тоже не помогло. Подскажите, пожалуйста, в чем может быть дело и как это решить? Могу весь скрипт выложить, если надо.
PS Переделывать на app.dialogs.add() очень не хотелось бы.

Помощь










