2015-01-19 4 views
-1

정말 그렇게 어렵습니까? 내 Google-Fu는 무뚝뚝합니까? 도대체 어떻게 나머지 스크립트 실행을 취소하는 취소 버튼을 만들까요?Adobe ESTK 취소 버튼은 실제로 취소합니다

내 스크립트가 벙어리입니다. 나는 좋은 코더가 아니라는 것을 알지만, 여기에 내가 가지고있는 것이있다 :

나는 INDD CScloud를 자동화하고있다. 스크립트는 먼저 창을 열고 연산자는 옵션을 라디오 버튼으로 갖습니다. 아래쪽에는 표준 "OK"및 "Cancel"버튼이 있으며 스크립트에는 Window에 표시된 옵션을 기반으로하는 몇 가지 기능이 있습니다. 내가 원하는 것은 "Canel"버튼을 눌렀을 때 ALL CODE EXECUTION을 멈추게하는 것입니다. 그게 전부 야! 아무것도 공상! 하지만 대화 창을 닫고 변경 사항을 등록하지 않고 계속 진행하는 것만으로도 작업을 수행 할 수 있습니다. GRRR.

var asker = new Window ("dialog","Answer Some Stuff!"); 
    var firstselector = asker.add ("panel", undefined, "Which Thing First?") 
     firstselector.alignChildren = "left" 
     firstselector.preferredSize = [250,100] 
     thing1a = typeselector.add ("radiobutton", undefined, "Thing 1a") 
     thing2a = typeselector.add ("radiobutton", undefined, "Thing 2a") 
     thing3a = typeselector.add ("radiobutton", undefined, "Thing 3a") 
     thing1a.value = true; 
    var secondselector = asker.add ("panel", undefined, "Which Thing Second?") 
     secondselector.alignChildren = "left" 
     secondselector.preferredSize = [250,100] 
     thing1b = secondselector.add ("radiobutton", undefined, "Thing 1b") 
     thing2b = secondselector.add ("radiobutton", undefined, "Thing 2b") 
     thing3b = secondselector.add ("radiobutton", undefined, "Thing 3b") 
     thing1b.value = true; 
    var thirdselector = asker.add ("panel", undefined, "Do Thing Three?") 
     thirdselector.alignChildren = "left" 
     thirdelector.preferredSize = [250,75] 
     certyes = thirdselector.add ("radiobutton", undefined, "Yes") 
     thidno = thirdselector.add ("radiobutton", undefined, "No") 
     thirdyes.value = true; 
       asker.add ("button", undefined, "Do It!", {name: "ok"}); 
       asker.add ("button", undefined, "Cancel", {name: "cancel"});  
asker.show(); 

var mainPart = function(){ 
if (thing1a.value == true && thing1b.value == true) 
{ 
do some stuff 
} 
if (thing2a.value == true && thing1b.value == true) 
{ 
do some different stuff 
} 
})(); 
var secondPart = function(){ 
if (thing3.value == true && thing1b.value == true) 
{ 
do this other stuff 
} 
if (thing3.value == true && thing2b.value == true) 
{ 
do some other stuff entirely 
} 
alert("All The Stuff Is Done!"); 
} 
)(); 

나는 일이 원하는 모든 운전자가 "취소"버튼 스크립트 종료를 클릭하고 mainPartsecondPart이 실행되지 않는 것입니다 :

여기 내 허접스런 코드입니다.

나는이처럼 .onClick를 사용하여 시도 :

var cancelBtn = asker.add('button',undefined,'Cancel'); 
cancelBtn.preferredSize.width = 175; 
cancelBtn.onClick=function(){ 
    exit(); 
} 

을하지만 분명히 exit()가 유효하지 않습니다와 코드가 너무 나는 외부 휴식의 불법 사용 "에 대해 break, 그 오류를 시도 ... 가고 계속 루프 "하지만 어쨌든 코드의 나머지 부분을 계속 진행했습니다 ...

제발 덜 바보주세요.

답변

1

Ach, 당신은 자기 비하를 웃게했습니다.

코드의 세 번째 부분을 없애고 (오류를 간단히하고 중지하기 위해) type-o ("thirdselector"대신 "thirdelector")를 수정했습니다. 또한 물건을 실행하기 위해 첫 번째 부분에서 "typselector"참조를 "firstselector"로 변경했습니다. 나는 "do some stuff"라인을 좋아했다. 그런 다음 스크립트 ("this.parent.close()"에서 취소 기능을 사용하기 위해 일반적으로 사용하는 기능을 추가했습니다.

다음은 원하는 위치로 이동하는 데 사용할 수있는 스크립트입니다.

[편집 - 데이터를 올바르게 전달하는 방법을 보여주기위한 자료를 추가했습니다. 취소 버튼에 대한 원래의 질문에 이미 답변했습니다. .이 공부하고 그것에서 기본적인하지만 강력한 아이디어를 수집합니다 할 수 있어야한다]

var asker = new Window ("dialog","Answer Some Stuff!"); 
    var firstselector = asker.add ("panel", undefined, "Which Thing First?") 
     firstselector.alignChildren = "left" 
     firstselector.preferredSize = [250,100] 
     thing1a = firstselector.add ("radiobutton", undefined, "Thing 1a") 
     thing2a = firstselector.add ("radiobutton", undefined, "Thing 2a") 
     thing3a = firstselector.add ("radiobutton", undefined, "Thing 3a") 
     thing1a.value = true; 
    var secondselector = asker.add ("panel", undefined, "Which Thing Second?") 
     secondselector.alignChildren = "left" 
     secondselector.preferredSize = [250,100] 
     thing1b = secondselector.add ("radiobutton", undefined, "Thing 1b") 
     thing2b = secondselector.add ("radiobutton", undefined, "Thing 2b") 
     thing3b = secondselector.add ("radiobutton", undefined, "Thing 3b") 
     thing1b.value = true; 

    var cancelBtn = asker.add('button',undefined,'Cancel'); 
    var okBtn = asker.add('button',undefined,'OK'); 
    cancelBtn.preferredSize.width = 175; 

okBtn.onClick=function(){ 
    mainPart(); 
    this.parent.close(); 
} 
cancelBtn.onClick=function(){ 
    this.parent.close(); 
} 

asker.show(); 

var mainPart = function(){ 

if (thing1a.value == true && thing1b.value == true) 
{ 
alert('1a and 1b'); 

} else if (thing2a.value == true && thing1b.value == true) { 
    alert('2a and 1b'); 
} else { 
    alert('something else'); 
//do some different stuff 
} 
} 
+0

감사합니다, 나는 그림 나는 적어도 즐겁게해야 좋은 코더 할 수없는 경우, 슬픈 노트에)이 작동하지 않습니다 :/ – JawzX

+0

'var mainPart = function() {alert ("It Worked!");}'경고가 취소 단추 나 표준 "OK"단추로 나타나지 않습니다. 만약 'var mainPart = (function() {alert ("It Worked!");})();'코드가 실행되고 어떤 버튼이 클릭 되더라도 경고창이 팝업된다. 실행 ... 자바 스크립트 실행에 대해 빠뜨린 뭔가 근본적인 것이 있습니까? – JawzX

+0

게시물 편집을 참조하십시오. 스크립트를 두 가지 방법 (간단히 말하면)으로 구성 할 수 있습니다. 1) 대화 형 '원샷'스타일 (예에서 볼 수있는 스타일) 또는 2) 스크립트가 열려있는 상태에서 '진행중인'기능입니다. 내 후유증 예를 crgreen.com에서 확인하십시오. – CRGreen