Два способа "Relink" скриптом

  • Автор темы Автор темы bossrus
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bossrus

шибка умный, аднака
Топикстартер
10 лет на форуме
Сообщения
447
Реакции
74
есть скрипт:
Код:
var Relink = app.menuActions.item("$ID/Relink..."); //запомнили строчку меню

var cont = app.activeDocument.selection[0]; //текущее выделение
var dub = cont.duplicate(); //сдублировать текущее выделение, и выделить новый объект
Relink.invoke(); //запустить релинк

если делаешь руками — то работает.
если скриптом — в результате выделен новый бокс с копией (то есть бокс таки нормально выделяется при дублировании), а вот картинка прилинкована в бокс оригинал. почему? :(

пробовал перед релинком вставлять строчку
Код:
dub.select();
чтобы указать скрипту, что он дурак, и выделен таки новый бокс — фигу. ничего не меняется.
такое ощущение, что он операцию выделения делает не тогда, когда она написана, а по окончании скрипта. а работает с тем боксом, который был выделен изначально :(

в общем-то вопроса рождается 2 — можно ли запустить relink непосредственно на объект dub (без написания процесса самого выбора картинки, желательно), или таки заставить его сменить текущее выделение когда трэба, а не когда он кончил?
 
Ответ: еще один скриптоглюк. или лыжи. ну или как обычно :)

а вот и нет. эта конструкция меняет путь к картинке (который должен быть написан в скобках), а не запускает собственно relink. можно и через это сделать, конечно. но тогда нужно самому писать и процедуру нахождения картинки на сервере...
 
Ответ: еще один скриптоглюк. или лыжи. ну или как обычно :)


ага. сделал так:
Код:
var newName = File.openDialog("Choose file...");
dub.allGraphics[0].itemLink.relink(File(newName));

и таки всё работает. очередное спасибо :)



Не по теме:
а почему "два способа"? таки тут рассмотрен всего один :)
 
Статус
Закрыто для дальнейших ответов.