- Сообщения
- 447
- Реакции
- 74
да. я сам в шоке с такой темы
итак, за годы работы у меня скопилось много скриптов. и пока все работали в офисе — всё было замечательно. каждому скрипту своя горячая кнопка, и нет проблем. но все разъехались на удалёнку, и с хоткеями начались траблы. никакие программы для удалёнки не передают их правильно и в полном объёме. а ещё на работе стоят маки, а дома у всех писюки...
в общем — есть задача сбацать скрипт, который делает графический интерфейс с кнопочками, к которым привязаны всякие разные другие скрипты.
причём переписывать сами скрипты низзя никак, бо не все на удалёнке, и у кого-то таки хоткеи продолжают облегчать работу.
перейдём к практической части задания:
в качестве "старого" скрипта, который я должен прикрутить к кнопкам я сделал такой простенький:
в качестве графического интерфейса сделал этот:
запускаю скрипт, жмякаю кнопочку.... и — ничего. совсем.
ок. добавляем вызов функции без .onClick:
теперь перед рисованием интерфейса всё работает, но после нажатия кнопки всё также фиг.
ок. меняем вызываемый скрипт:
во! тут я получаю сообщение, что :
понимаю, что не успевает закрыться интерфейс, и делаю небольшую задержку после закрытия оного:
и — то же самое сообщение про незакрытый модальный диалог.
как показали дальнейшие изыскания в данном случае не проходят и
и многое, многое другое.
не подскажете что можно придумать, чтобы и функции вызывались, и диалог не особо мешался?
итак, за годы работы у меня скопилось много скриптов. и пока все работали в офисе — всё было замечательно. каждому скрипту своя горячая кнопка, и нет проблем. но все разъехались на удалёнку, и с хоткеями начались траблы. никакие программы для удалёнки не передают их правильно и в полном объёме. а ещё на работе стоят маки, а дома у всех писюки...
в общем — есть задача сбацать скрипт, который делает графический интерфейс с кнопочками, к которым привязаны всякие разные другие скрипты.
причём переписывать сами скрипты низзя никак, бо не все на удалёнке, и у кого-то таки хоткеи продолжают облегчать работу.
перейдём к практической части задания:
в качестве "старого" скрипта, который я должен прикрутить к кнопкам я сделал такой простенький:
Код:
function gogogo(){
var origKoord = app.activeDocument.zeroPoint;
app.activeDocument.zeroPoint = [0, 0];
alert('ok');
}
в качестве графического интерфейса сделал этот:
Код:
path_to_script = "/путь к скриптам/";
extension_of_script = ".jsx";
test();
function runScript(script_name, script_function){
$.evalFile(path_to_script+script_name+extension_of_script);
eval( script_function );
}
function test() {
var myScriptPanel = new Window("dialog", "Выберите нужный скрипт");
myScriptPanel.orientation = "column";
myScriptPanel.alignChildren = "center";
button_my = myScriptPanel.add("button",undefined,'go!');
button_my.name = 999;
button_my.onClick = function () {
myScriptPanel.close();
runScript('test', 'gogogo()');
}
myScriptPanel.show();
}
запускаю скрипт, жмякаю кнопочку.... и — ничего. совсем.
ок. добавляем вызов функции без .onClick:
Код:
...
extension_of_script = ".jsx";
runScript('test', 'gogogo()');
test();
...
}
теперь перед рисованием интерфейса всё работает, но после нажатия кнопки всё также фиг.
ок. меняем вызываемый скрипт:
Код:
function gogogo(){
try {
var origKoord = app.activeDocument.zeroPoint;
app.activeDocument.zeroPoint = [0, 0];
} catch (err) {
alert(err)
}
alert('ok');
}
понимаю, что не успевает закрыться интерфейс, и делаю небольшую задержку после закрытия оного:
Код:
...
button_my.onClick = function () {
myScriptPanel.close();
date = Date.now();
do {
currentDate = Date.now();
} while (currentDate - date < 2000);
runScript('test', 'gogogo()');
}
myScriptPanel.show();
...
и — то же самое сообщение про незакрытый модальный диалог.
как показали дальнейшие изыскания в данном случае не проходят и
Код:
app.activeDocument.textDefaults.appliedCharacterStyle = app.activeDocument.characterStyles.itemByName("[None]");
app.activeDocument.textDefaults.appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName("[No Paragraph Style]");
app.activeDocument.layoutWindows[0].transformReferencePoint = AnchorPoint.CENTER_ANCHOR;
и многое, многое другое.
не подскажете что можно придумать, чтобы и функции вызывались, и диалог не особо мешался?
Последнее редактирование модератором: