0

スクリプトが動作するようになったので、進行状況を表示するプログレスバーを追加したいだけです (duh!)。これは、元のスクリプトで問題を発見したために作成したテスト スクリプトです。元のスクリプトでは、開く、保存する、コピーする、貼り付ける、変換するループがたくさんあります...

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 が更新され、正しい進行状況が表示されます。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 に答える