В чем несовместимость CS4 и CS5 для скриптов, которые вызываются из основного меню

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

andrew.folio

Участник
Топикстартер
Сообщения
28
Реакции
40
В теме "Скрипт в одну строку", автор Eugenyus, приводит пример для создания поля в меню и присвоения ему соответствующего действия:
Код:
#targetengine "breakPars"; //Это обязательно первая строка. В кавычках записать любое сочетание символов, но чтобы точно избежать совпадений с другими скриптами
var menuName = "Разбить абзацы на фреймы"; //Так будет назван пункт в меню
var myMenuItem  = app.scriptMenuActions.add(menuName);
myMenuItem.addEventListener('onInvoke', function(){main();});
var mnu = app.menus.item("$ID/Main").submenus.item("$ID/Type"); //Пункт меню будет создан в меню Type
mnu.menuItems.add(myMenuItem);

function main(){ //"оборачиваем" скрипт в эту функцию. Если она в скрипте уже есть, оставляем как есть.

//основной код

}//"закрываем" функцию

Действуя аналогично я написал скрипт для CS5 с некоторым функционалом. Все работает отлично. Но при попытке сделать тоже самое, но для CS4. Ничего пока не получилось.
Скрипт запускается, меню появляется, но при попытке выполнить действие возникает ошибка: «Объект больше не существует».
Та же ситуация и с приведенным выше примером.

Что здесь непонятного для CS4? Какой объект он потерял: Listener? или function, которую надо выполнить?
 
Ответ: В чем несовместимость CS4 и CS5 для скриптов, которые вызываются из основного меню

У меня такое же и в ЦС3 выскакивало. Вот только сейчас (в отпуске )) хоть убейте не вспомню на каком этапе. Одна из возможных причин, в двух словах, это если при открытом Индизайне в запущенный скрипт с #targetengine в первой строке вносятся изменения. Лечение простое — после редактирования скрипта перезапустить Индизайн. Вторая версия — не те объекты выделены. Честно, сейчас точно не вспомню, куда именно копать, но куда-то туда.
 
Статус
Закрыто для дальнейших ответов.