操作
在 Sketch 3.8 中,我们引入了操作 API:一种允许插件对应用程序中的事件做出反应的方式。使用它,插件作者可以编写在触发特定操作时执行的代码,例如“打开文档”、“保存”、“添加画板”等等。
什么是操作?
操作是应用程序中发生的事件,通常是用户交互的结果。操作具有名称,例如 CloseDocument
、DistributeHorizontally
或 TogglePresentationMode
,您可以告诉您的插件在触发这些操作时运行部分代码。
如何注册我的插件以“监听”操作?
很简单:您只需在插件已有的 manifest.json
文件中添加一个处理程序。
我们将为 OpenDocument
操作添加一个新的处理程序。
"commands" : [
...
+ {
+ "script" : "my-action-listener.js",
+ "name" : "My Action Listener",
+ "handlers" : {
+ "actions": {
+ "OpenDocument": "onOpenDocument"
+ }
+ },
+ "identifier" : "my-action-listener-identifier"
+ }
...
],
我们正在告诉我们的插件,我们希望在打开文档时运行 onOpenDocument
函数,所以让我们在 my-action-listener.js
中添加它。
export function onOpenDocument(context) {
context.actionContext.document.showMessage('Document Opened')
}
保存所有内容,构建插件,现在无论何时在 Sketch 中打开文档,您都应该看到一个显示“已打开文档”的小型提示横幅。
操作上下文
当触发操作时,Sketch 可以将有关操作本身的一些信息发送到目标函数(例如,当选择更改时选择的图层,或当打开新文档时当前文档)。我们称之为操作上下文,您可以使用 context.actionContext
从作为目标函数参数发送的 context
中访问它。
不过,请记住,并非所有操作都设置操作上下文。实际上,目前大多数操作都没有设置,因此,如果您认为在操作上下文中需要访问某些内容,请给我们发送便笺,我们会尽快添加它。
begin
/finish
操作
某些操作(如 SelectionChanged
)实际上分两个阶段发生:begin
和 finish
。如果您只想在其中一个阶段调用函数,则可以为 SelectionChanged.begin
或 SelectionChanged.finish
添加处理程序。如果您不添加任何内容,操作将触发两次。
查找正确的操作
有关 API 中所有可用操作的列表,请查看 操作参考部分。
下一步
如果您想更广泛地了解操作 API,请尝试以下主题