2011-08-25 55 views
3

我知道這是草率的代碼,但在這裏它是:AppleScript的語法

display dialog ("Start Screensaver. Please type: matrix, coffee, waffles, star, water, or 
fireworks.", default answer "") 
if text returned of result = "matrix" then 
set user_choice to "MatrixSaver" 
else 
if text returned of result = "coffee" then 
    set user_choice to "Coffee" 
else 
    if text returned of result = "waffles" then 
     set user_choice to "Waffles" 
    else 
     if text returned of result = "star" then 
      set user_choice to "Hyperspace" 
     else 
      if text returned of result = "water" then 
       set user_choice to "LotsaWater" 
      else 
       if text returned of result = "fireworks" then 
        set user_choice to "Skyrocket" 
       else 
        (*do nothing*) 
       end if 
      end if 
     end if 
    end if 
end if 
end if 

if (user_choice = null) then (*do nothing*) 
else 
tell application "System Events" 
    set ss to screen saver user_choice 
    start ss 
end tell 
end if 

當我嘗試編譯我的代碼,「默認答案」被突出顯示,並說:「預期「) 「等,但找到了標識符。」

任何想法?謝謝。

回答

2

我相信正確的語法只是

display dialog "Start Screensaver. Please ..." default answer "" 
3

,("Start Screensaver")default answer參數導致語法錯誤之間。刪除,

這不是一個語法錯誤,但可變user_choice並不大if塊外存在。如果你運行它作爲寫的,你會在最後if塊得到這個消息:

變量user_choice沒有定義。

你可以通過display dialog語句之前聲明變量解決這個問題...

set the user_choice to "" 

現在你可以在代碼的任何地方使用該變量。 :)

+0

答案的後半部分不正確 - AppleScript只有本地(函數)和全局範圍。 –

+0

@ fireshadow25當我按照你所說的做時,'默認'的'默認答案'被突出顯示,並且程序說它期望有一個「,」任何想法? – CodeKid

+1

@CodeKid是的。除非你正在評估一個表達式,否則父項並不是真正需要的。我建議從'display dialog'語句中刪除兩個圓括號。 – fireshadow52