我该如何工作? (AppleScript的)

时间:2016-11-07 14:02:04

标签: variables applescript identification

您好我正在尝试使此代码正常工作但是在Blurb执行后它说它不知道Blob。所以我认为我只需要将Blob放在开头,但Blob并不知道Blurb等等。 如果所有答案都正确,请订购Blob,Blurb,Blirb,Blorb,Blarb和finish。

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.

1 个答案:

答案 0 :(得分:0)

  1. 一般建议:不要使用run script NAME; run NAME就足够了。 (run script创建一个全新的AS解释器实例,并发送脚本以便在其中运行。)它还可以让您确切地看到错误发生的位置。

  2. 这里的问题是AppleScript编译器是一块垃圾。静态绑定变量名称需要在使用它们的代码之前声明,否则编译器太笨了,无法正确查找和绑定它们。如果可行,请重新排序脚本对象,以便在使用它们的代码上方声明它们。如果您已经获得循环引用,而脚本A引用脚本B而B引用A,则不会起作用。在变量名称之前插入my关键字会使AS动态地查找该变量,从而避免此特定问题。 (对AS子程序的调用总是动态绑定的,因此您不必担心这些。)

  3. 不要发布需要人们强制退出脚本编辑器的示例代码。这很烦人,不会让你成为朋友。