0

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

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!);

脚本运行并显示窗口和进度条。然后 UI 中的任何内容都不会更新,直到出现警告框。如果我暂停脚本(whitin ExtendScript Toolkit CS5),UI 会更新为 xt 和正确的进度。我知道 UI 通常只有在系统中有“剩余”时间时才会更新,但这太荒谬了!!!

如何在我想要的时候强制 Photoshop 更新 UI?

//谢谢。

4

2 回答 2

1

(来自JavaScript 工具指南)您可以使用 StatusWindow.update()

于 2013-02-12T00:44:00.903 回答
0

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

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

于 2015-07-31T08:35:34.827 回答