photoshop脚本:强制UI更新

时间:2012-08-22 12:48:08

标签: user-interface updates flash-cs5 photoshop-script

我的脚本工作正常,我只想添加一个进度条来显示进度(呃!)。 这是我制作的测试脚本,因为我在原始脚本中发现了问题。在原始脚本中,循环中有很多打开,保存,复制,粘贴和转换......

var StatusWindow = new Window("window","Production");

StatusWindow.size = [400,150];
StatusWindow.alignChildren = "left";
StatusWindow.TextProgress = StatusWindow.add("statictext",[0,0,200,0]);
StatusWindow.BarProgress = StatusWindow.add("progressbar",[0,0,200,12]);
StatusWindow.show();

for (n=0; n<100; n++) {
  StatusWindow.TextProgress.text = n;
  StatusWindow.BarProgress.value = n;
  $.sleep(100);
}
alert("Done!);

脚本运行并显示Window和进度条。然后,在警报框出现之前,UI中不会更新任何内容。如果我暂停脚本(whitin ExtendScript Toolkit CS5),则使用thext更新UI并正确进度。我知道,当系统中有“遗留”时间时,UI正常只会更新,但这太荒谬了!!!

如何在我需要时强制Photoshop更新用户界面?

//感谢。

2 个答案:

答案 0 :(得分:1)

(来自JavaScript Tools guide)您可以使用StatusWindow.update()

答案 1 :(得分:0)

您可能需要考虑使用app.refresh()或waitForRedraw()。 window.update()似乎没有为我解决这个问题。

以下是来源:http://www.davidebarranca.com/2012/10/scriptui-window-in-photoshop-palette-vs-dialog/