[AI CC-CC2022] RECOLOR ENGINE v2 by S.H.

ну, надо вызывать из обработчика клика функцию с параметром (1 или 2), текущее окно прямо из обработчика закрывать, а из этой функции запускать новое в зависимости от параметра. так по-моему нормально работает.
ага, такой вариант работает, а вот обратно уже никак. Меня такой вариант вполне устроит.
 
в смысле никак? можно любое окно же открыть
 
Переключаться между модальными окнами плохая идея, лучше один вариант скрипта реализовать.
Ну или пробовать через panel.
 
Модальное окно на то и модальное, что никуда из него не переключишься в рамках одного приложения.
 
А под иллюстратором такое работает, проверяли?
 
Да тут вопрос даже не в том работает ли под иллюстратором, а вопрос в размерах окна, оно должно меняться.
Кстати нужно с этим поиграться, если размеры можно менять на лету и делать show/hide (или visible) определенным контейнерам, то можно не плодить несколько окон.
 
По мне, так самый идеальный вариант, лучше него только вкладки, но я не уверен, что на Script UI они вообще реализуемы
 
лучше него только вкладки, но я не уверен, что на Script UI они вообще реализуемы
С этим как раз проблем нет, tabbedpanel работает из коробки. Один вариант нужно раскидать на две вкладки, а второй вариант это содержимое второй вкладки пристроить сбоку. Но два окна городить ради этого это лишнее.
 
tabbedpanel работает из коробки
Точно, пробовал, работает? Тогда вообще не пойму, почему сразу через вкладки не сделали? Лично я подобные вещи на си и VBA делаю всегда именно так 'hz'
 
Вкладки это один из вариантов, а второй вариант нужно чтобы все элементы были видны сразу...
грубо говоря в одном варианте идет CM, YK на вкладках, а в другом варианте чтобы сразу были видны все элементы для CMYK.
Если делать три вкладки, то непонятно с размерами окна и скролом, хотя возможно это решаемо.
 
Вариант ниже работает в одну сторону - к окну 2. Обратно вернуться к окну 1 не получается.
Подумаю на счёт изменения размеров окна.

p.s. кто-то может объяснить последние строчки кода?
button1.onClick = function(){
win.close(1); // закрываем второй окно, это понятно
}
if ( win.show()==1 ) win2.show(); // здесь что? если окно 1 показано, выводим окно 2 ? А где команда на закрытие окна 1?


Код:
       var win = new Window ("dialog", "Window 1", [150, 150, 1040, 880]); //  WIN 1

     var win2 = new Window("dialog", "Window 2", [150, 150, 600, 250]);   //  WIN 2
          win2_pnl = win2.add("panel", [10, 10, 440, 100], "Move slider around"); 
     resetButton2 = win2_pnl.add("button", [25, 10, 150, 40], "Back to Full view");       

var tpanel = win.add ("tabbedpanel", [5, 5, 650, 680]);
var general = tpanel.add ("tab", [5, 5, 400, 300], "1, 2");  ////  TAB
var win_pnl = general.add ("panel", [0, 0, 500, 500], "1"); ////  PANEL

    var ys1 = 5;    var ys2 = 30;    var xxx = 20;    var yyy = 10;    var xx2 = 230;    var yy2 = 45;
    var dfg = 8;
    label_CC = win_pnl.add("edittext", [xxx+220, 19+dfg, 280, 38+dfg],             "100"); 
        var slideCC = win_pnl.add("slider", [xxx, 25, xx2, 50], 0, -200, 200);      slideCC.value = 100;
var images = tpanel.add ("tab", undefined, "3, 4");  ////  TAB
images.alignChildren = "fill";
var imwin_pnl = images.add ("panel", undefined, "Options");  ////  PANEL
imwin_pnl.dtd_decl = imwin_pnl.add ("checkbox", undefined, "123");
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////  BUTTONS
//var buttons = win.add ("group");
button1 = win.add ("button", [50, 200, 150, 230], "Compact view", {name: "ok"});
button2 = win.add ("button", [250, 200, 300, 230], "Cancel");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

button1.onClick = function(){
win.close(1);
}

if ( win.show()==1 ) win2.show();
 
button1.onClick = function(){
win.close(1); // закрываем второй окно, это понятно
}
if ( win.show()==1 ) win2.show(); // здесь что? если окно 1 показано, выводим окно 2 ? А где команда на закрытие окна 1?
Если окно закрыто с кодом 1 то показать второе окно
Где вы этот кусок кода взяли?
 
Если окно закрыто с кодом 1 то показать второе окно
Где вы этот кусок кода взяли?
на форуме adobe вчера подкинули.

где почитать про параметры окон ==1, ==0 ? Не складывается в голове (win.show ==1) = закрыть.
 
Что не складывается?
Вы ж предыдущей строкой возврат этого значения делаете
win.close(1);
Нельзя ж настолько бездумно куски кода копипастить! 'fp'
 
Что не складывается?
Вы ж предыдущей строкой возврат этого значения делаете
win.close(1);
Нельзя ж настолько бездумно куски кода копипастить! 'fp'
я понял, думал мы закрываем окно 2 - win(1) - 0 - первое, 1 - второе), а здесь close(1). Начинает проясняться.
 
я понял, думал мы закрываем окно 2 - win(1) - 0 - первое, 1 - второе), а здесь close(1).
Вы, все таки, покурите основные принципы программирования на яваскрипте. А то, вроде, серьезные программы пишете, но, временами, зияющие пробелы в базовых понятиях просто ужасают. 'fp'
 
  • Спасибо
Реакции: MrDesigner
сейчас подкинули новый вариант с resize:

Код:
var   
u, 
ui = new Window('dialog'), 
mainStack = ui.add('group'), 
fullView = mainStack.add('group'), 
basicView = mainStack.add('group'), 
fullBtn = fullView.add('button',u,'Go to full view'), 
basicBtn = basicView.add('button',u,'Go to basic view'), 
basicDims = [400,500], 
fullDims =[150,200] ; 
fullBtn.id = "full"; 
basicBtn.id = "basic"; 
 
ui.preferredSize = fullDims; 
mainStack.alignment = ["fill","fill"]; 
mainStack.alignChildren = ["fill","top"]; 
mainStack.orientation = "stack"; 
basicView.visible = false; 
 
basicBtn.onClick = fullBtn.onClick = function(){ 
var id = this.id; 
if ( id == "full" ) { 
fullView.visible = false; 
basicView.visible = true; 
ui.size = basicDims; 
ui.layout.resize(); 
//ui.center(); 
} 
else { 
fullView.visible = true; 
basicView.visible = false; 
ui.size = fullDims; 
ui.layout.resize(); 
//ui.center(); 
} 
} 
 
ui.show();
 
Вы, все таки, покурите основные принципы программирования на яваскрипте. А то, вроде, серьезные программы пишете, но, временами, зияющие пробелы в базовых понятиях просто ужасают. 'fp'
прекрасно Вас понимаю, спасибо за тактичность и терпение.