如何在applescript中包含?

如何在applescript中包含?,applescript,Applescript,我有一堆代码,我想在几个不同的applescripts中使用,所以我想把它放到它自己的applescript中,我可以从其他applescripts中引用。基本上我想做一个包含。在applescript中是如何做到这一点的?以下是我找到的实现这一点的最佳方法。您可以在另一个脚本上调用函数,如下所示: 脚本a.scpt set myScript to load script "b.scpt" set foo to myScript's theTest() on theTest()

我有一堆代码,我想在几个不同的applescripts中使用,所以我想把它放到它自己的applescript中,我可以从其他applescripts中引用。基本上我想做一个包含。在applescript中是如何做到这一点的?

以下是我找到的实现这一点的最佳方法。您可以在另一个脚本上调用函数,如下所示:

脚本
a.scpt

set myScript to load script "b.scpt"
set foo to myScript's theTest()
on theTest()
       return true
end theTest
脚本
b.scpt

set myScript to load script "b.scpt"
set foo to myScript's theTest()
on theTest()
       return true
end theTest

正如您所见,您可以通过调用函数名myScript的theTest(),从a.scpt调用b.scpt中的函数。

您可以将要引用的所有处理程序和脚本放入脚本库中(例如:
my_math_lib.scpt
my_string_lib.scpt
)。然后,将此文件保存到计算机上的“脚本库”文件夹中

根据您希望如何定义此库的可用性,您可以使用不同的文件夹:

  • my_math_lib.scpt
    my_string_lib.scpt
    文件放在
    /Library/Script Libraries
    文件夹中,使计算机上的所有用户都可以使用它们
  • 将它们放在
    ~/Library/Script Libraries
    文件夹中,使其仅可供特定用户使用
然后,您可以使用这些库中的所有处理程序,如下所示:

property math_lib : script "my_math_lib"
property string_lib : script "my_string_lib"
math_lib's do_this()
string_lib's do_that()

非常接近,但你让我走上了正确的轨道。我用桌面上的两个文件都试过了,它说不能将b.scpt转换成类型文件。我想我找到了解决办法。这使它起作用。告诉应用程序“Finder”将路径设置为POSIX路径((容器的(路径到我))作为文本)结束告诉set myScript加载脚本路径set foo到myScript的test()重复问题: