- Сообщения
- 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;и многое, многое другое.
не подскажете что можно придумать, чтобы и функции вызывались, и диалог не особо мешался?
			
				Последнее редактирование модератором:  
			
		
	
										
										
											
	
										
									
								 
	 
 
		 
 
		


 
 
		