Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 销毁ScriptUI调色板窗口(及更多)_Javascript_Window_Adobe Indesign_Extendscript_Adobe Scriptui - Fatal编程技术网

Javascript 销毁ScriptUI调色板窗口(及更多)

Javascript 销毁ScriptUI调色板窗口(及更多),javascript,window,adobe-indesign,extendscript,adobe-scriptui,Javascript,Window,Adobe Indesign,Extendscript,Adobe Scriptui,在ExtendScript中,我遇到了一个非常奇怪的场景,需要脚本用户界面专家的帮助。我有一个巨大的InDesign脚本,在执行过程中,它在调色板窗口中显示一个进度条。(var w=new Window(“调色板”、“进度”);)我希望脚本完成后关闭此调色板,因此我在脚本末尾添加了一个w.close() 但是,这仅在焦点仍处于InDesign状态时发生。当InDesign脚本在后台的另一个屏幕上运行时,我们的一些人喜欢处理其他任务,这很好,但当他们返回InDesign时,进度条调色板仍在屏幕上,

在ExtendScript中,我遇到了一个非常奇怪的场景,需要脚本用户界面专家的帮助。我有一个巨大的InDesign脚本,在执行过程中,它在调色板窗口中显示一个进度条。(
var w=new Window(“调色板”、“进度”);
)我希望脚本完成后关闭此调色板,因此我在脚本末尾添加了一个
w.close()

但是,这仅在焦点仍处于InDesign状态时发生。当InDesign脚本在后台的另一个屏幕上运行时,我们的一些人喜欢处理其他任务,这很好,但当他们返回InDesign时,进度条调色板仍在屏幕上,显示100%完成。此调色板窗口可以移动,但不能关闭,即使单击了角落中的红色小“x”。这最终会导致多个选项板整天都在屏幕上,因为这个脚本在一个正常的工作日中会被调用几十次

通过阅读Peter Kahrel的优秀ScriptUI指南,我了解到所有选项板都保留在内存中,即使在使用
.close()
关闭之后也是如此。我希望它们从内存中完全擦除并清除,这样当脚本运行时,如果用户切换到另一个应用程序,它们就不会留在屏幕上。关于如何实现这一点有什么想法吗


顺便说一句,我想包含一些示例代码,这样您就可以自己查看了,但是当它只是从ESTK调用的一些小代码时,它似乎不起作用;仅在我的4647生产线脚本中。因此,我无法粘贴任何示例代码。

不知道您是否仍感兴趣,但您通常可以使用var w=new Window(“调色板”,“我的窗口标题”);然后w.visible=false或w.location.y=10000或w.size=[0,0]。不是很好的解决方案,但很容易应用

您可以在脚本运行之间重用窗口,方法是将其设置为全局变量并使用

#targetengine 'my_target_engine_name'

这意味着用户只能打开一个恼人的窗口。这不是一个解决方案,但结合Trevor的位置技巧,这可能是一个可以接受的黑客攻击。

您和您的团队使用哪种ID版本?目前为CS6。不确定我们将来是否会升级到CC。也许升级到CC和使用Extension Builder 3的方法会更好。它仍处于测试阶段,但您可以创建真正的可停靠面板。我知道这并不能解决你的问题,但我一直处于完全相同的位置。我的工具变大了。所以我将多个进程分离成单独的脚本。一直打开一个面板并不好。唯一一个能够很好地处理这一问题的Adobe应用程序是带有可停靠面板的After Effects。也许这有帮助:来自“Javascripts工具指南”:>
$。gc()
>在JavaScript引擎中启动垃圾收集。遗憾的是,我认为我们公司永远不会更新到CC,而且在不久的将来肯定不会。至于垃圾收集的想法——这是个好主意,但恐怕也行不通。我可能会在有时间的时候尝试一下。谢谢是的,我已经发现了很多,所以至少在脚本完成后,如果进度条调色板恰好保持可见,它将在下次运行脚本时恢复为可用的进度条调色板。我来看看特雷弗的黑客。