photoshop脚本:强制UI更新

问题描述 投票:0回答:2

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

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中没有任何更新,直到出现警告框。如果我暂停脚本(使用ExtendScript Toolkit CS5),则UI将使用thext更新,并且进度正确。我知道,通常只有在系统中有“剩余时间”时,UI通常才会更新,但是这很荒谬!!

我也想强迫我如何强迫Photoshop更新UI?

//谢谢。

user-interface updates flash-cs5 photoshop-script adobe-scriptui
2个回答
1
投票

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.