Photoshop ScriptUI:显示一个对话框窗口,关闭它,再显示一个空的全尺寸窗口



在我用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
}

当您执行它时,会出现一个只有一个"OK"按钮的小对话框窗口,正如预期的那样。您可以使用"确定"按钮关闭它但每个连续的w.show()都会产生一个空白窗口,几乎填满整个屏幕,没有任何控件只能使用ESC键关闭。

我尝试覆盖b.onClick事件并手动调用close(),但这并没有改变任何内容。

在检查w变量时,很明显,boundslocationsize以某种方式发生了变化。我尝试将这些值重置为以前的状态,然后窗口大小被恢复。但是,该按钮仍然不可见。

我是不是错过了什么?如何使对话框窗口正确显示多次?

试试这个代码,它适用于Photoshop CC+OSX。

w.close()销毁对话框窗口,所以您应该重新创建。

按一个名为"ok"的按钮,按回车键与w.close()相同。

#target 'photoshop'
for (var i = 0; i < 3; i++) {
  var w = W();
  $.writeln(w.show());
}
function W () {
  var w = new Window('dialog', 'Title');
  var b = w.add('button', undefined, 'OK', {name:'ok'});
  return w
}

相关内容

  • 没有找到相关文章

最新更新