2016-11-07 83 views
0

你好,我試圖讓這個代碼工作,但Blurb執行後它說它不知道Blob。所以我認爲我只需要把Blob放在開頭,但Blob不知道Blurb等等。 如果所有答案都正確,則命令爲Blob,Blurb,Blirb,Blorb,Blarb並完成。我該如何做這項工作? (applescript)

script finish 
set dialogResult to display dialog ¬ 
    "Can you escape?" buttons "Cool!" 
end script 

script Blarb 
set dialogResult to display dialog ¬ 
    "Can you escape?" buttons {"No", "Yes"} 
if button returned of dialogResult = "Yes" then 
    run script Blob 
end if 
end script 

script Blorb 
set dialogResult to display dialog ¬ 
    "Can you escape?" buttons {"No", "Yes"} 
if button returned of dialogResult = "No" then 
    run script Blob 
else if button returned of dialogResult = "Yes" then 
    run script Blarb 
end if 
end script 

script Blirb 
set dialogResult to display dialog ¬ 
    "Can you escape?" buttons {"No", "Yes"} 
if button returned of dialogResult = "No" then 
    run script Blob 
else if button returned of dialogResult = "Yes" then 
    run script Blorb 
end if 
end script 

script Blurb 
set dialogResult to display dialog ¬ 
    "Can you escape?" buttons {"No", "Yes"} 
if button returned of dialogResult = "Yes" then 
    run script Blob 
else if button returned of dialogResult = "No" then 
    run script Blirb 
end if 
end script 

script Blob 
set Variable to "No" 
repeat while Variable = "No" 
    set dialogResult to display dialog ¬ 
     "Can you escape" buttons {"No", "Yes"} 
    set Variable to button returned of dialogResult 
    if button returned of dialogResult = "Yes" then 
     run script Blurb 
    end if 
end repeat 
end script 



run script Blob --Order if all answers are correct is Blob, Blurb, Blirb, Blorb, Blarb, and finish. 

回答

0
  1. 一般的建議:不要使用run script NAME;這裏是run NAME就足夠了。 (run script創建一個全新的AS解釋器實例,並將腳本發送到該腳本中運行)。它還可以讓您準確查看錯誤發生的位置。

  2. 這裏的問題是,AppleScript編譯器是一個廢話。靜態綁定的變量名稱需要在使用它們的代碼之前聲明,否則編譯器太愚蠢,無法正確地找到並綁定它們。如果可行,請重新排列腳本對象,以便在使用它們的代碼之上聲明它們。如果你有循環引用,腳本A引用腳本B,而B引用A,那麼這將不起作用。在變量名稱之前插入一個my關鍵字使得AS動態地查找該變量,從而避免了這個特殊問題。 (調用AS子程序總是動態綁定的,所以你不需要擔心這些。)

  3. 不要發佈示例代碼,要求人們強制退出腳本編輯器以擺脫它。這很煩人,不會讓你有任何朋友。

+0

好吧,對不起,我是applescript的noob,所以我會搜索如何使用「我的」關鍵字。 – JulesTheGodOfMC

+0

將所有'運行腳本Blob'命令更改爲'運行我的Blob','運行腳本Blirb'以'運行我的Blirb'等 – foo

+0

哦,並學會使用AppleScript for Good,而不是Evil。老實說,這已經足夠邪惡了。 – foo