2012-06-26 2 views
4

내 Photoshop 스크립트 중 하나의 진행률 표시 줄을 표시하려고합니다. 버튼 클릭 이벤트 내에서 작업하면 아무런 문제없이 진행률 표시 줄을 업데이트 할 수 있습니다.Photoshop 스크립팅 - 창에서 진행률 표시 줄 업데이트

이 스크립트의 경우 사용자 개입이 필요하지 않습니다. 내가 원하는 : - 창 보기 - 작업 을 완료로 진행 표시 줄을 업데이트 - 창을 닫습니다 사용자가 창을 닫습니다 win.show(); 블록까지

var win = new Window("dialog{text:'Progress',bounds:[100,100,400,150],\ bar:Progressbar{bounds:[20,20,280,31] , value:0,maxvalue:100}};"); 
win.show(); 

for(...){ 
    //do work here 

    //update progress 
    win.bar.value = ...; 
} 

win.close(); 

문제는이다. 또한 onClose 처리기를 추가 한 다음 즉시 창을 닫으려고했지만 창이 표시되지 않습니다.

진행률 표시 줄을 어떻게 사용할 수 있습니까?

답변

4

창 클래스 dialog은 모달 대화 상자이므로 실행을 계속하기 전에 창 클래스를 닫아야합니다.

를 사용하여 클래스 window는 비 차단 창을 만들 수 있습니다 :

var win = new Window("window{text:'Progress',bounds:[100,100,400,150],bar:Progressbar{bounds:[20,20,280,31] , value:0,maxvalue:100}};"); 
win.show(); 

for(...){ 
    //do work here 

    //update progress 
    win.bar.value = ...; 
} 

win.close(); 

그러나, 당신은 여기에 다음 문제로 실행됩니다. 루프에서 수행중인 작업에 따라 Photoshop은 진행률 막대를 볼 수있을만큼 빨리 UI를 업데이트하지 않습니다. 이것은 내가 붙어있는 곳입니다./

0

Ive가 WaitForRedraw 스 니펫을 한 번 실행하고 ps 재 작성 UI를 만들 수 있습니까? 아이디어를 확인할 시간이 없으므로 아이디어 만 있습니다.