操作

在 Sketch 3.8 中,我们引入了操作 API:一种允许插件对应用程序中的事件做出反应的方式。使用它,插件作者可以编写在触发特定操作时执行的代码,例如“打开文档”、“保存”、“添加画板”等等。

什么是操作?

操作是应用程序中发生的事件,通常是用户交互的结果。操作具有名称,例如 CloseDocumentDistributeHorizontallyTogglePresentationMode,您可以告诉您的插件在触发这些操作时运行部分代码。

如何注册我的插件以“监听”操作?

很简单:您只需在插件已有的 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)实际上分两个阶段发生:beginfinish。如果您只想在其中一个阶段调用函数,则可以为 SelectionChanged.beginSelectionChanged.finish 添加处理程序。如果您不添加任何内容,操作将触发两次。

查找正确的操作

有关 API 中所有可用操作的列表,请查看 操作参考部分

下一步

如果您想更广泛地了解操作 API,请尝试以下主题