Показать сообщение отдельно
  #1 (permalink)  
Старый 01.09.2018, 18:31
Интересующийся
Отправить личное сообщение для vospa Посмотреть профиль Найти все сообщения от vospa
 
Регистрация: 09.12.2017
Сообщений: 16

Как элементам массива назначить переменные?
Доброго времени суток, уважаемая аудитория!
Прошу помощи, в связи с очень плохим знанием скриптов.

Есть кнопка в панели расширения для Photoshop, которая запускает .jsx
<button class="tool" id="gb_3b">MyFunc</button>

Нажатие кнопки запускает нужный .jsx из js. В данном случае gb3b.jsx
$("#gb_3b").button().click(function(a) {
    csInterface.evalScript('$.evalFile("' + extensionRoot + 'work/gb3b.jsx")')
});

Мне нужно передать переменную из jsx в js.
В самом конце jsx помещаю функцию
function func_in_jsx() {
	var rm = r2;
	return rm;
};

А в js добавляю:
$("#gb_3b").button().click(function(a) {
    csInterface.evalScript('$.evalFile("' + extensionRoot + 'work/gb3b.jsx"); func_in_jsx();', function f(x) {var rad_m = x; $('#gblur3rad').slider("value", rad_m);};
});

В случае передачи одной переменной, все замечательно работает. Скрипт jsx отрабатывает все что положено в Photoshop и по завершении, ползунок в панели сдвигается соответственно значению возвращенной переменной.
А вот в случае, когда нужно вернуть несколько переменных, у меня стопор. Не знаю, как это правильно записать.

В jsx меняю функцию на:
function func_in_jsx() {
	var rl = r1;
	var rm = r2;
	return [rl, rm];
};

А вот как это записать правильно в js не знаю. Пробовал по всякому. Никак. Алерт показывает, что вернулось 2 значения, а вот присвоить их переменным не знаю как.
$("#gb_3b").button().click(function(a) {
    csInterface.evalScript('$.evalFile("' + extensionRoot + 'work/gb3b.jsx"); func_in_jsx();', function f(x) {var y = [x]; var rad_m = y[1]; var rad_l = y[0]; $('#gblur3rad').slider("value", rad_m); $('#lowgblur3rad').slider("value", rad_l);};
});

Заранее благодарю за любую помощь
Ответить с цитированием