окошки в C3

Статус
Закрыто для дальнейших ответов.

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
В документации накалякано:
Код:
The window type. The value is:
dialog: Creates a modal dialog.
palette: Creates a modeless dialog, also called a floating palette. (Not
supported by Photoshop CS3.)
window: Creates a simple window that can be used as a main window for
an application. (Not supported by Photoshop CS3.)
не догнать мне как создать окошко типа palette.

Кто-нить не поделиться кусочком кода?
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

мда... Я один что ли, дурачок такой?
 

Evgen

Registered User
15 лет на форуме
Сообщения
2 054
Реакции
984
Ответ: окошки в C3


Не по теме:
Не наговаривайте на себя. ))
Молчание объясняется элементарно: до сих пор никто, сведущий в этом вопросе, не видел эту ветку.

Уверен, вам не хотелось бы увидеть ничего не значащие сообщения.

 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

Интересно, где же эти сенсеи прохлаждаются, когда жаждующий знаний отрок погибает от собственной немощи =( =(
 

Evgen

Registered User
15 лет на форуме
Сообщения
2 054
Реакции
984
Ответ: окошки в C3


Не по теме:
"Элементарно, Ватсон": занимаются своими делами, коих у всех предостаточно.
 

AirGraph

Участник
Сообщения
244
Реакции
21
Ответ: окошки в C3

А в чем, собственно, проблема??? Вот, например, великолепно работающий скрипт:

function main() {

var myWindow = new Window('palette', 'Test Window', [100, 100, 200, 200]);
if(myWindow) {

myWindow.show();
while(1);
}
else alert("Can't create the window object...");
}
main();

AirGraph.
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

AirGraph сказал(а):
function main() {

var myWindow = new Window('palette', 'Test Window', [100, 100, 200, 200]);
if(myWindow) {

myWindow.show();
while(1);
}
else alert("Can't create the window object...");
}
main();

AirGraph.
Не знаю, у меня этот скрипт из-за строки, помеченной красным цветом, погружает люстру в даун. А без этой строки окошко появляется на секунду и исчезает. Вот. Без цикла никак нельзя создавать окна такого типа?
И вообще, может я зря заморачиваюсь?
Проблема вот в чем. Мне нужно создать окно, на котором будет кнопочки всякие. При нажатии на эти кнопочки будут, например, рисоваться векторные объекты. Но в то же время, хотелось бы,не закрывая данного окна, спокойно переключаться в ил и че-нить там подправлять. Вот я и думал, что окошко, типа palette это позволяет делать. Что это не модальное окно, которое пока не закроешь, хрен поработаешь с другим чем-нибудь...

И еще вопрос. Почему при нажатии на кнопку на форме действия скрипта выполняются только после того, как закроешь саму форму по `ок` или `x`, почему не выполняются сразу при нажатии на кнопочку?
Или диалоговые окна нужны только для задания каких-то начальных параметров? Короче вот пример, демонстрирующий эту проблему. При нажатии на кнопку ничего как-будто не произошло, но если после этого закрыть окно `x` - то можно увидеть что снизу документика нарисовалась направляющая:
Код:
res =
"dialog { \
me: Group { orientation: 'row', \
me1: Button { text:'бла бла' } \
}, \
} \
}";
win = new Window (res);

win.me.me1.onClick=function()
{
mm = 2.834645;
lsd = activeDocument;
xxx = lsd.width/mm;  
yyy = lsd.height/mm; 
metkilayer = lsd.activeLayer;
metka = metkilayer.groupItems.add();   
var line = metka.pathItems.add();
line.stroked = true;
line.filled = false;
line.guides = true;
line.setEntirePath( Array( Array(-2536.472*mm, 0*mm), Array(3243.086*mm, 0*mm) ) );
}

win.center();
win.show();
 

AirGraph

Участник
Сообщения
244
Реакции
21
Ответ: окошки в C3

1. Советую жаждущему знаний отроку ознакомиться с концепцией "событийного" программирования, модальных диалогов и независимых окон ну и в этом духе, а то как-то ни о чем разговор получается.

2. Цикл while(1); по природе своей обязан завешивать исполняемый код до момента его аварийного завершения и предназначен был только для того, чтобы минимумом усилий продемонстрировать создание окна типа 'palette' (что, собственно, и было заявлено как основная задача). Без этого цикла на моем G5 процесс возникновения и исчезновения окна на глаз не заметен. Если же есть желание научить окно жить независимой жизнью, а не просто завешивать иллюстратор - надо прикручивать к этому окну обработку событий, сиречь см п.1 ;-)

AirGraph.
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

AirGraph сказал(а):
надо прикручивать к этому окну обработку событий, сиречь см п.1 ;-)

AirGraph.
please, small example. Так быстрее соображу...

ЗЫ. Я ж не программист всё-таки...
 

AirGraph

Участник
Сообщения
244
Реакции
21
Ответ: окошки в C3

Мое оптимистическое предположение о том, что по прочтении документации решение Вашей проблемы может быть найдено достаточно быстро не имело под собой, как выяснилось, никаких оснований. Создать окно типа "palette" в среде Иллюстратора не является трудновыполнимой задачей. Гораздо более интересной является задача сохранения этого окна "в живиых" по завершении скрипта. Как я себе представлял, и как я ранее (лет этак 15 назад) делал, программа должна создать окно, навесить на него обработчик событий этого окна и вызвать диспетчер событий, после чего, собственно, заврешиться. Вот тут то и начинается интересное. Окно создается динамически в рамках скрипта и, по идее, его надо затолкать в какой-нибудь массив окон, палитр и т.п., для того, чтобы оно продолжало свое существование по завершении скрипта. Никаких таких методов в Иллюстраторе я не обнаружил. Также не удалось обнаружить хоть какого-нибудь внятного диспетчера событий ScriptUI, которому можно было бы сказать: Вот тебе, брат, массив объектов, по которым давай-ка Dispatch Event_ы, дружище... ;-)))) Но, как говаривал бессмертный Владимир Семенович: "Кровь пить решили погодить, вкусное - на третье!.." Так вот, самое интересное, что окно типа "palette" в среде Иллюстратора махом закрывается вместе с завершеним скрипта, его создавшего, но, ВНИМАНИЕ!!!, продолжает свое беспечное существование, если скрипт выполняется в среде ESTK2!!! Во где круть то!!! Скрипт завершен, а динамически созданный им объект продолжает жить, неизвестно в какой памяти располагая свои данные... Как в ComedyClab - Adobe МОЛОДЕЦ!!!

Если кто в курсе, как можно в Иллюстраторе, ИнДизайне или Бридже создать немодальное окно при помощи JS - отпишите, пожалуйста, теперь мне просто любопытно! ;-)))))

AirGraph.
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

AirGraph сказал(а):
Если кто в курсе, как можно в Иллюстраторе, ИнДизайне или Бридже создать немодальное окно при помощи JS - отпишите, пожалуйста, теперь мне просто любопытно! ;-)))))
AirGraph.
Не просто любопытно, а хотелось бы знать
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

AirGraph, а не подскажете ли где можно в доступной форме почитать про концепцию "событийного" программирования, модальных диалогов и независимых окон ну и в этом духе... А то окошки-то, окошками... а всё ж неудобно, что скрипт выполняется после закрытия окна, как в примере, что калякал выше... И, кстати не по теме: в js модульно можно писать скрипт или нет? В смысле, функция в одном файле, а само использование функции в другом...
 

AirGraph

Участник
Сообщения
244
Реакции
21
Ответ: окошки в C3

Думаю, что проще всего про концепции разбираться на примере создания какой-нибудь программы, типа "Конвертора валют" на С++. В Mac OS X это декларируется как самый примитивный ;-)))) пример создания своего собственного оконного интерфейса с кнопками и т.п. Думаю, что в виндовс в VisualC есть подобные примеры, довольно хорошо описанные и откоментированные. Суть одна и та же. А современную литературу по программированию порекомендовать не могу, потому как не занимаюсь этим вот уж лет как 15. Думаю, что в описании на тот же VisualC есть солва и ссылки про эти концепции... ;-)

Что касается модульной структуры программирования на JS - посмотри мои скрипты, там все сделано именно так. Из своего опыта программирования могу сказать, что выделять функции в отдельные файлы имеет смысл по двум причинам. 1. Использование одного и того же кода различными скриптами. 2. Трудности редактирования кода длиной более 500 строк. Все это относится к разработке больших проектов (тысячи и более строк кода), а в случае написания коротких скриптов (100-200 строк) теряет всякий смысл, а лишь увеличивает гимор необходимостью открывать десяток файлов и долго и мучительно искать нужное окно, содержащее 10 строк кода... ;-)

А задачка то Вами заданная похоже не только мне не по зубам оказалась... Странно. Адоба что, считала, что кто-то будет писать скрипты для ESTK2??? ;-)

AirGraph.
 

qsedftghk

фея
Топикстартер
15 лет на форуме
Сообщения
2 032
Реакции
1 199
Ответ: окошки в C3

AirGraph сказал(а):
А задачка то Вами заданная похоже не только мне не по зубам оказалась... Странно. Адоба что, считала, что кто-то будет писать скрипты для ESTK2??? ;-)
AirGraph.
Адоба иногда не кисло раздражает....

ща проверю ваши скрипты на модульность =) =) =), спасибо.
 
Статус
Закрыто для дальнейших ответов.