在 ExtendScript 中,我遇到了一个非常奇怪的场景,我需要 ScriptUI 大师的帮助。我有一个巨大的 InDesign 脚本,在其执行过程中,它会在调色板窗口中显示一个进度条。( var w = new Window("palette", "Progress");
) 我希望在脚本完成后关闭此调色板,因此我w.close()
在脚本末尾添加了一个。
但是,仅当焦点仍在 InDesign 中时才会发生这种情况。我们的一些人喜欢在 InDesign 脚本在后台的另一个屏幕上运行时处理其他任务,这很好,但是当他们返回 InDesign 时,进度条调色板仍在屏幕上,显示 100% 完成。这个调色板窗口可以四处移动,但不能关闭,即使点击角落里的红色小“x”也是如此。这最终导致多个调色板全天停留在屏幕上,因为该脚本在正常工作日被调用数十次。
阅读 Peter Kahrel 的 ScriptUI 优秀指南,我了解到所有调色板都保留在内存中,即使在使用.close()
. 我希望它们完全从内存中删除并清除,因此如果用户在脚本运行时切换到另一个应用程序,它们就不会留在屏幕上。关于如何做到这一点的任何想法?
顺便说一句,我想包含一些示例代码,以便您自己查看,但是当它只是从 ESTK 调用的一些小代码时,它似乎不起作用;仅在我的 4,647 行生产脚本中。因此,我无法粘贴任何示例代码。