首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >use语句在AppleScript中不起作用

use语句在AppleScript中不起作用
EN

Stack Overflow用户
提问于 2015-05-05 17:16:52
回答 2查看 499关注 0票数 0

我正在脚本文件中创建我的第一个AppleScript库,并希望通过use语句(I followed these instructions)使用该文件中的处理程序。所以我试着:

代码语言:javascript
复制
use script "My Library"

create_new_track(10, 2, 2)

在我的"My Library.scpt“文件中,有一个名为"create_new_track”的处理程序。但是当我试图在use语句之后调用它时,我得到了这个错误:

代码语言:javascript
复制
error "«script» doesn’t understand the “create_new_track” message." number -1708 from «script»

使用下面的代码片段,我可以让处理程序运行:

代码语言:javascript
复制
tell script "My Library"
    create_new_track(10, 2, 2)
end tell

尽管如此,我还是希望能够避免在我的脚本中出现大量的tell块。有人知道哪里出问题了吗?

EN

回答 2

Stack Overflow用户

发布于 2018-09-21 00:48:59

指出一些有用的信息…如果选择使用属性定义脚本库以便能够调用要在其他脚本中使用的处理程序和脚本对象的路径,请务必记住,如果对脚本库文件…进行了任何更改并重新编译和保存,这些更改将不会传递到您创建的脚本,这些脚本调用库文件中的脚本对象和处理程序。简而言之,您需要打开、重新编译并保存创建的每个脚本,这些脚本调用库文件中的脚本对象和处理程序。如果您有数十个甚至数百个脚本,这可能会成为一场噩梦。

使用来自其他答案之一的以下示例…脚本库在编译时存储,并将保留其值,直到重新编译脚本为止。对原始库文件的任何更新或更改都不会反映在调用它们的脚本中,直到重新编译并保存这些脚本

代码语言:javascript
复制
property mylib : script "My Library"

...

mylib's do_this()

mylib's do_that()

etc.

在我看来,更有利的选择是在运行时加载脚本库。这样,依赖于该库文件的任何脚本在运行…时都会自动更新在更改和保存脚本库文件之后。

这是我用来在运行时加载库的代码

代码语言:javascript
复制
property myLib : missing value
property theLibrary : missing value

on loadLibraries()
    set theLibrary to (path to home folder as text) & "Library:Script Libraries:My Library.scpt"
    set myLib to load script alias theLibrary
end loadLibraries

loadLibraries()

myLib's do_this()
myLib's do_that()
票数 1
EN

Stack Overflow用户

发布于 2015-05-05 20:28:09

我想我会试试:

代码语言:javascript
复制
 use mylib : script "My Library"
 mylib's create_new_track(10, 2, 2)

如果我没弄错的话,你只能像上面那样使用use语句,以便使用应用程序中的术语。-But,我可能弄错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30048844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档