[ID CC-CC2021] Простой вопрос - как вызвать из скрипта другой скрипт?

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
По #include - понятно. '8)'
Но если надо делать массовые замены по списку, не толкать же все в include.
К примеру, есть скрипт, скажем, Zameny. Запускается стандартно в любой момент. Но как бы сделать так, чтобы можно было его вызывать/запускать из другого скрипта?
В VBA есть команда Call. В Яве не вижу ничего аналогичного.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 991
Реакции
1 222
Application.doScript (script:varies, language: ScriptLanguage , withArguments:Array of any, undoMode: UndoModes , undoName: string ):any
 
  • Спасибо
Реакции: hulk1776

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Оно работает!
Код:
var mScript = File("d:/Work/tests2.jsx");
app.doScript(mScript);
Я плачу... *(
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 294
Реакции
10 865

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
А откуда грусть-тоска?
Это слезы радости. Давно надоело таскать кучи кода из скрипта в скрипт. Наконец-то можно делать вызов (раньше не получалось [по тупости]).
 
Последнее редактирование:

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Спасибо. Давно переживал, что в Индизайне нет аналога пижамковского Autosave on/off. Этой командой можно было отключить сохранение промежуточных копий при каждом движении клавиши или даже перелистывании страницы. Правда при сбое восстановиться было не из чего. Зато работа значительно убыстрялась. Вот и в Индизайне обнаружилось нечто из этой области.
 
Последнее редактирование:

Chursin Viktor

Участник
Сообщения
46
Реакции
13
Оно работает!
Код:
var mScript = File("d:/Work/tests2.jsx");
app.doScript(mScript);
Я плачу... *(
Добрый день.
По этому примеру попробовал.
Само по себе вот это работает (если сохранить только эти строки и запустить).

JavaScript:
var mScript = File("C:/Users/Home/AppData/Roaming/Adobe/InDesign/Version 14.0/en_US/Scripts/Scripts Panel/Основные/SigningAndRename_3.0.jsx");
app.doScript(mScript);

Но почему то не отрабатывает в скрипте который ниже. Путь к скрипту менял на самый короткий без кириллицы. Без разницы. Подскажите пожалуйста в чем причина?

JavaScript:
var w = new Window("dialog");
w.alignChildren = "left";
var radio1 = w.add("radiobutton", undefined, "Первый");
var radio2 = w.add("radiobutton", undefined, "Второй");
var radio3 = w.add("radiobutton", undefined, "Третий");
var radio4 = w.add("radiobutton", undefined, "Четвертый");
var radio5 = w.add("radiobutton", undefined, "Пятый");
radio1.value = true;

// Обработчик нажатия на кнопку OK
w.add("button", undefined, "OK").onClick = function() {
  if (radio1.value) {
    // Действия при выборе кнопки "Первый"

var mScript = File("C:/Users/Home/AppData/Roaming/Adobe/InDesign/Version 14.0/en_US/Scripts/Scripts Panel/Основные/SigningAndRename_3.0.jsx");
app.doScript(mScript);
 
    alert("Выбрана кнопка Первый");
      
  } else if (radio2.value) {
    // Действия при выборе кнопки "Второй"
    alert("Выбрана кнопка Второй");
  } else if (radio3.value) {
    // Действия при выборе кнопки "Третий"
    alert("Выбрана кнопка Третий");
  } else if (radio4.value) {"Четвертый"
    alert("Выбрана кнопка Четвертый");
  } else if (radio5.value) {
    // Действия при выборе кнопки "Пятый"
    alert("Выбрана кнопка Пятый");
  }
}

w.show();
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 294
Реакции
10 865
Потому что вызов скрипта внутри обработчика кнопки.
Не пытайтесь обмануть систему, пока на экране висит модальное окно, другой скрипт вы не запустите.
 
  • Спасибо
Реакции: Chursin Viktor

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 294
Реакции
10 865
А если не просто алерт, а чтото в документе менять?
 

Drawer

Участник
Сообщения
1 951
Реакции
875
А если не просто алерт, а чтото в документе менять?
С документом модальное окно работать не даст :)
Поэтому да, по нормальному нужно
JavaScript:
#targetengine "session";
var w = new Window("palette");
Но скрипт-то запустить оно позволяет :)
 
Последнее редактирование:
  • Спасибо
Реакции: Chursin Viktor