По време на разработването на следващия скрипт за Illustrator, се сблъсках с много интересно поведение. В моя случай една от активните палети се нарича помощни диалогови прозорци, които току-що трябваше да започнат работа с активния документ въз основа на въвеждането на тези данни. Тогава забелязах, че диалоговите прозорци не могат да получават/изпращат данни към активния документ. По време на търсенето на такива проблеми и техните решения разбрах, че трябва да мисля в посока на BridgeTalk, декларирайки целевото приложение. Скриптовете, извикани по този начин, работеха добре, но имаше нюанси. Първо скриптът трябва да бъде поставен в кавички, с всички произтичащи от това последствия, а променливите се декларират след извикването, не четете Решението се оказа доста просто, но не очевидно — вместо да извиквате отделни команди чрез BridgeTalk, трябва само да извикване на диалоговия прозорец. Това позволява на него и всички функции, извикани от, да се позовават на документа, без да нарушават обичайния стил на кодиране.

За по-голяма яснота, версия на скрипта с „два бутона“, която демонстрира проблема. Може да опиташ да се обадиш не през btExecute и ще видиш, че няма да стане.

Първоначално публикувано в mozg-studio.org на 28 август 2014 г.