操作是应用程序中发生的事件,通常是用户交互的结果。操作有名称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.document.showMessage('Document Opened')
}
保存所有内容,构建插件,现在,无论何时在Sketch中打开文档,您都应该看到一个小小的吐司(Toast)横幅,上面写着“文档已打开”。
当一个操作被触发时,Sketch可以向目标函数发送一些关于操作本身的信息(例如选择改变时选择的图层,或者打开新文档时的当前文档)。我们称之为操作上下文,并且可以使用context
作为目标函数的参数发送的操作context.actionContext
。
但请记住,并非所有操作都会设置Action Context。事实上,他们中的大多数目前都没有,所以如果您认为您想在Action Context中访问某些内容,请向我们发送便条,然后尽快添加。
begin
/ finish
行动一些行动(如SelectionChanged
)实际上发生在两个阶段:begin
和finish
。如果你想调用一个函数只对其中的一个,你可以添加一个处理程序SelectionChanged.begin
,或SelectionChanged.finish
。如果您不添加任何内容,该操作将被触发两次。
有关API中所有可用操作的列表,请查看操作参考部分。
专业提示:有时浏览列表的工作量太大,而您只想要更直接一些。对于这些情况,您可以听取所有操作以找到您需要的一个。
再次,如果有任何事件想要添加到列表中,请告诉我们,我们将尝试添加它(由于性能原因,某些事件不在列表中,例如“图层被拖动”)。
如果您想更详细地了解Action API,请尝试以下主题:
原文:https://developer.sketchapp.com/guides/action-api/