2011-10-25

[筆記] 挑戰TJS 4.8

這一章節講的其實簡單了許多,就是如何利用macro去呼叫plugin這樣而已。

程式碼大致上就長這樣子:

[macro name=messagebox]
[eval exp="informPlugin.showMessage(mp)"]
[endmacro]

這樣一來,呼叫macro messagebox就等於呼叫到informPlugin了。

不過這邊依然有個特別的地方可以注意,那就是mp的部份~

雖然看起來只丟了一個參數mp。

實際上,informPlugin.showMessage卻是可以定義成下面這樣

function showMessage(input) {
  System.inform(input.message, input.title);
}

所以使用上可以變成
[messagebox message="This is blah blah..." title="Test"]
這樣一來呼叫macro時,mp底下就會帶有message, title這兩個變數,在程式中也就可以使用了。

另外,這好像是頭一次在挑戰TJS中看到範例有誤(?),在InformPlugin.ks中記得加上[return]標籤,不然程式一旦[call storage="InformPlugin.ks"]時,就跑不回來了。

上一章節作者還有加,這邊怎麼好像忘記了 0.o

總之,遇到有問題的人不妨把他加上吧,問題應該就解決了。

0 意見: