在我用 JavaScript 编写的 Photoshop CC 2015 (Windows 10) 脚本中,我正在循环处理活动文档的所有图层,并希望在每个步骤中显示一个设置对话框。
为简化起见,请采用以下工作示例。窗口是在循环之外定义的,在此处剥离的其他步骤中,窗口在循环中的每一步都显示一次:
#target photoshop
var w = new Window('dialog', 'Title');
var b = w.add('button', undefined, 'OK');
for (var i = 0; i < 3; i++) {
// other code
w.show();
// other code
}
当您执行它时,会出现一个只有一个“确定”按钮的小对话框窗口,正如预期的那样。您可以使用“确定”按钮将其关闭。但是每次连续都会w.show()
产生一个几乎填满整个屏幕的空白窗口,没有任何控件。它只能使用 ESC 键关闭。
我尝试覆盖b.onClick
事件并手动调用close()
,但这并没有改变任何东西。
在检查w
变量后,很明显bounds
, 分别location
以size
某种方式发生了变化。我尝试将这些值重置为之前的状态,然后窗口大小就恢复了。但是,该按钮仍然不可见。
我错过了什么吗?如何让对话窗口多次正确显示?