Action API

目錄

  1. 入門

    1. 插件基礎(chǔ)
    2. 您的第一個(gè)插件
    3. 開發(fā)環(huán)境
    4. 調(diào)試
    5. Action API
    6. 發(fā)布插件
  2. 高級

    1. 插件捆綁
    2. 插件,腳本和命令
    3. 插件位置
    4. 更多關(guān)于CocoaScript
    5. SketchTool

在Sketch 3.8中案铺,我們引入了Action API:一種讓插件對應(yīng)用程序中的事件作出反應(yīng)的方式蔬芥。使用它梆靖,插件作者可以編寫在觸發(fā)某些操作時(shí)執(zhí)行的代碼控汉,如“打開文檔”,“保存”返吻,“添加畫板”......

什么是操作(Action)姑子?

操作是應(yīng)用程序中發(fā)生的事件,通常是用戶交互的結(jié)果测僵。操作有名稱CloseDocument街佑,DistributeHorizontally或者TogglePresentationMode治泥,你可以告訴你的插件在這些操作被觸發(fā)時(shí)運(yùn)行代碼分别。

我如何注冊我的插件來“聆聽”一個(gè)操作?

簡單:你只需在manifest.json你的插件已有的文件中添加一個(gè)處理程序噪伊。

我們將為該OpenDocument操作添加一個(gè)新的處理程序:

"commands" : [
  ...
+  {
+    "script" : "my-action-listener.js",
+    "name" : "My Action Listener",
+    "handlers" : {
+      "actions": {
+        "OpenDocument": "onOpenDocument"
+      }
+    },
+    "identifier" : "my-action-listener-identifier"
+  }
  ...
],

我們告訴我們的插件榨婆,我們希望onOpenDocument在文檔打開時(shí)運(yùn)行該功能磁携,所以讓我們將其添加到my-action-listener.js

export function onOpenDocument(context) {
  context.document.showMessage('Document Opened')
}

保存所有內(nèi)容,構(gòu)建插件良风,現(xiàn)在谊迄,無論何時(shí)在Sketch中打開文檔,您都應(yīng)該看到一個(gè)小小的吐司(Toast)橫幅烟央,上面寫著“文檔已打開”统诺。

行動(dòng)上下文

當(dāng)一個(gè)操作被觸發(fā)時(shí),Sketch可以向目標(biāo)函數(shù)發(fā)送一些關(guān)于操作本身的信息(例如選擇改變時(shí)選擇的圖層疑俭,或者打開新文檔時(shí)的當(dāng)前文檔)粮呢。我們稱之為操作上下文,并且可以使用context作為目標(biāo)函數(shù)的參數(shù)發(fā)送的操作context.actionContext钞艇。

但請記住啄寡,并非所有操作都會(huì)設(shè)置Action Context。事實(shí)上香璃,他們中的大多數(shù)目前都沒有这难,所以如果您認(rèn)為您想在Action Context中訪問某些內(nèi)容,請向我們發(fā)送便條葡秒,然后盡快添加姻乓。

begin/ finish行動(dòng)

一些行動(dòng)(如SelectionChanged)實(shí)際上發(fā)生在兩個(gè)階段:beginfinish嵌溢。如果你想調(diào)用一個(gè)函數(shù)只對其中的一個(gè),你可以添加一個(gè)處理程序SelectionChanged.begin蹋岩,或SelectionChanged.finish赖草。如果您不添加任何內(nèi)容,該操作將被觸發(fā)兩次剪个。

找到正確的行動(dòng)

有關(guān)API中所有可用操作的列表秧骑,請查看操作參考部分

專業(yè)提示:有時(shí)瀏覽列表的工作量太大扣囊,而您只想要更直接一些乎折。對于這些情況,您可以聽取所有操作以找到您需要的一個(gè)侵歇。

再次骂澄,如果有任何事件想要添加到列表中,請告訴我們惕虑,我們將嘗試添加它(由于性能原因坟冲,某些事件不在列表中,例如“圖層被拖動(dòng)”)溃蔫。

下一步

如果您想更詳細(xì)地了解Action API健提,請嘗試以下主題:

原文:https://developer.sketchapp.com/guides/action-api/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末私痹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子痪伦,更是在濱河造成了極大的恐慌侄榴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件网沾,死亡現(xiàn)場離奇詭異癞蚕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辉哥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門桦山,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人醋旦,你說我怎么就攤上這事恒水。” “怎么了饲齐?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵钉凌,是天一觀的道長。 經(jīng)常有香客問我捂人,道長御雕,這世上最難降的妖魔是什么矢沿? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮酸纲,結(jié)果婚禮上捣鲸,老公的妹妹穿的比我還像新娘。我一直安慰自己闽坡,他們只是感情好栽惶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疾嗅,像睡著了一般外厂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宪迟,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天酣衷,我揣著相機(jī)與錄音,去河邊找鬼次泽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛席爽,可吹牛的內(nèi)容都是我干的意荤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼只锻,長吁一口氣:“原來是場噩夢啊……” “哼玖像!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起齐饮,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捐寥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后祖驱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體握恳,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年捺僻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乡洼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匕坯,死狀恐怖束昵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葛峻,我是刑警寧澤锹雏,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站术奖,受9級特大地震影響礁遵,放射性物質(zhì)發(fā)生泄漏匿辩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一榛丢、第九天 我趴在偏房一處隱蔽的房頂上張望铲球。 院中可真熱鬧,春花似錦晰赞、人聲如沸稼病。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽然走。三九已至,卻和暖如春戏挡,著一層夾襖步出監(jiān)牢的瞬間芍瑞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工褐墅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拆檬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓妥凳,卻偏偏與公主長得像竟贯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子逝钥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355