Welcome! 登入 註冊
美寶首頁 美寶百科 美寶論壇 美寶落格 美寶地圖

Advanced

InDesign的JavaScript程式設計 -- textFrame物件,characters物件 和 insertionPoints物件

(1) 所屬物件種類:
「characters物件」和「insertionPoints物件」 在 InDesign 的 DOM(Document Object Model)中 是屬於 Text Stream 的物件,也就是跟文字流或文字內容有關的物件,相對於Text Stream物件的另一類物件是跟排版有關的叫做 Text Frame類的物件,其實主要就是「textFrame」這個物件。當然,Indesign還有很多其它類的物件。


(2) 實際意義:

character物件:其實就是一個一個的「字元」,在英文文章裡指的是「字母」,在中文文章裡指的是「字」
characters物件:是character物件的集合物件,就是一堆字囉。(注意,上一個沒有s,這一個有s)

insertionPoint物件:其實就是「插入點」,也就是我們在編輯文件時,字與字之間的空隙,游標一閃一閃的地方就是其中一個插入點
insertionPoints物件:就是insertionPoint物件的集合物件,就是一堆插入點

textFrame物件:就是我們在InDesign上面放上的文字框
textFrames物件:是textFrame的集合物件,就是一堆文字框


(我們可以注意:javascript的命名習慣是某個名字中如果包括好幾個英文的Word,第一個Word開頭小寫,第二個以後開頭大寫)


(3)例子:

假設你在 Indesign裡 建立了一個新的文件(document),這個新的文件有一個新的空白頁(page),然後你在這個新的空白頁裡放了一個文字框(textFrame),且在這個文字框裡鍵入這幾個字「我是一個測試」(不包括引號)。

這時,如果你要在程式裡,要用一個變數名字myFrame來表示這個文字框,可以這樣寫
myFrame = app.docuemnts[0].pages[0].textFrames[0]

(請注意,javascript的習慣是從0開始)

因為文字框是用來放文字的(廢話?),所以這個myFrame會有跟它的文字內容有關的 text stream物件,



(a)首先,如果你要觀察 myFrame裡的文字內容,可以鍵入下列指令
alert( myFrame.contents)
這時會出現一個小訊息窗,上面寫著「我是一個測試」(不包括引號)。




(b)因為這個myFrame裡面有一堆字,所以它有一個子物件:characters,也就是上面介紹的文字集合物件,如果鍵入下列指令
alert(myFrame.characters.length)
結果會印出6,因為這個myFrame裡面有6個字,也就是它的子物件,characters,這個集合物件有6個成員



(c)如果有觀察每個字的內容,比如說第1個字的內容,可以鍵入
alert(myFrame.characters[0].contents)
結果會印出「我」(不包括引號)

(再次注意,javascript的習慣是從0開始)

(唉 時間不夠 有空再寫)



Edited 22 time(s). Last edit at 03/03/2010 02:18AM by RandomVariable.
(編輯記錄)