Welcome! 登入 註冊
ç¾Žå¯¶é¦–é  ç¾Žå¯¶ç™¾ç§‘ 美寶論壇 美寶è½æ ¼ 美寶地圖

Advanced

Change History

Message: InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件

Changed By: RandomVariable
Change Date: March 13, 2010 12:39AM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();


(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR
(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 13, 2010 12:29AM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 13, 2010 12:09AM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了
è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 13, 2010 12:08AM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:58PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:52PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€




(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:52PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†

(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:41PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:41PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:33PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:29PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€
「錨定物件ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†äº‹å¯¦ä¸Šï¼ŒIndesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:28PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æ–‡ç« çš„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件




(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œæˆ‘們隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œå¦‚果如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€
「錨定物件ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†äº‹å¯¦ä¸Šï¼ŒIndesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼
Changed By: RandomVariable
Change Date: March 12, 2010 11:23PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:16PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:15PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:15PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:14PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:07PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:03PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:02PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:02PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
Changed By: RandomVariable
Change Date: March 12, 2010 11:01PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件

Original Message

作者: RandomVariable
Date: March 12, 2010 10:54PM

InDesignçš„JavaScript程å¼è¨­è¨ˆ-- 錨定物件
一般的物件,如文字框,矩形框,圖片,是放在é é¢ä¸Šï¼Œ
錨定物件則是將這些物件放在文章裡é¢ï¼Œæˆ–者說把這些物件放在包å«é€™äº›æœ‰ç« çš„物件(如文字框)裡é¢
錨定物件則是將這些物件放在文å‡èªªåœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:„物件(如文字框)裡é¢

(一)手動設定的方法:

(1)直接æ’入:
å‡è¨­åœ¨Indesign裡é¢ï¼Œæœ‰ä¸€å€‹æ–‡å­—框,且包å«æ–‡å­—如下:
[im1]ht如果我們想è¦åœ¨åœ–此時我們想è¦åœ¨åœ–中的‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]

(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£Design%20Image%20for%20Mepo/sshot-1.png[/img]
如果我們想è¦åœ¨åœ–中的文字「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“æ’入一個圖片
å¯ä»¥å…ˆåˆ©ç”¨æ¸¸æ¨™å°‡æ’入點放在「圖片ã€é€²ä¾†ã€ä¹‹é–“
然後å†åŸ·è¡Œæ­£å¸¸ç¨‹åºçš„「置入ã€åœ–片
å°±å¯ä»¥å¾—到下é¢çš„çµæžœ
[img]ht
(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£tp://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-2.png[/img]
ç¾åœ¨ï¼Œé€™å€‹åœ–片就是一個錨定物件


(2)剪下ã€è²¼ä¸Š
也å¯ä»¥å…ˆä»¥æ­£å¸¸ç¨‹åºåœ¨ã€Œé é¢ã€ä¸Šç½®å…¥åœ–片
然後將這個圖片剪下,å†å°‡æ’入點放在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£

(3)錨定物件的æ„義:
(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œ
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個情形,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒç›´çš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個情形,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個情形,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)…¥é»žæ”¾åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“
å†åŸ·è¡Œã€Œè²¼ä¸Šã€ï¼Œçµæžœä¹Ÿæœƒå’Œä¸Šé¢ä¸€æ¨£



(3)錨定物件的æ„義:

(a)å…ˆæ一個題外話,上é¢èªªã€Œé€™å€‹åœ–片就是一個錨定物件ã€ï¼Œé€™å¥è©±æœ‰é»žä¸å°
å•é¡Œä¸åœ¨ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œè€Œæ˜¯åœ¨ã€Œåœ–片ã€
因為當我們在Indesign中置入一個「圖片ã€çš„時候,Indesign「一定ã€æœƒé †ä¾¿é€ä½ ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€(rectangle),把它包起來
「圖片ã€ä¸€å®šåœ¨æŸä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢(上é¢çš„çµæžœï¼Œçœ‹ä¸åˆ°é€™å€‹çŸ©å½¢æ¡†ï¼Œä½†æ˜¯å®ƒçœŸçš„存在),
所以其實上é¢çš„情形,應該說那個「矩形框ã€æ‰æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€
(關於圖片的這個性質,下次å†å¦ç‚ºæ–‡èªªæ˜Ž)

(b) 錨定物件是在一個「字元ã€(character)裡é¢ï¼š
我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œæˆ‘們隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œå¦‚果如下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]我們知é“,當「文字框ã€çš„大å°è¢«æ”¹è®Šçš„時候,文字框的內容也會跟著é©æ‡‰ï¼Œç¾åœ¨ï¼Œæˆ‘們試著隨便改變一下上é¢é‚£å€‹æ–‡å­—框的大å°ï¼Œçµæžœå¦‚下:
[img]http://algebra.byethost11.com/InDesign%20Image%20for%20Mepo/sshot-3.png[/img]
çµæžœé€™å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€å°±è·Ÿè‘—其它文字一樣,一起去é©æ‡‰é€™å€‹æ–°çš„文字框大å°
就好åƒå®ƒæ˜¯åœ¨æ–‡å­—「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“çš„å¦ä¸€å€‹ã€Œæ–‡å­—ã€
事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€
「錨定物件ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件事實上,Indesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—裡é¢åŒ…å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†äº‹å¯¦ä¸Šï¼ŒIndesign確實把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ä¸€å€‹æ–‡å­—,但這個文字並ä¸æ˜¯é‚£å€‹ã€ŒéŒ¨å®šç‰©ä»¶ã€ï¼Œ
比較明確的定ä½æ˜¯ï¼šã€ŒéŒ¨å®šç‰©ä»¶ã€æ˜¯é‚£å€‹æ–‡å­—所包å«çš„一個物件
其實如果åªæ˜¯å–®ç´”設計,ä¸æ˜¯å¯«ç¨‹å¼çš„話,把那個「錨定物件ã€çœ‹æˆå°±åƒä¸€å€‹ã€Œæ–‡å­—ã€ä¹Ÿé‚„好,
åªæ˜¯å¦‚æžœè¦å¯«ç¨‹è©¦åŽ»æ“控InDesign話,它們之間的定ä½æ‡‰è©²æ˜¯ï¼š
Indesign把「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“看æˆæœ‰ã€Œä¸€å€‹å­—å…ƒ(character)ã€é€™å€‹å­—元裡é¢åˆåŒ…å«äº†ä¸€å€‹ç‰©ä»¶ï¼Œå°±æ˜¯é‚£å€‹çŸ©å½¢æ¡†
我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:我們å¯ä»¥æŠŠåŒ…å«é€™å€‹æ¡†å½¢æ¡†çš„字元,å«é€™å€‹æ¡†å½¢æ¡†çš„「爸爸ã€(在Indesign的物件模型裡é¢ï¼Œé€™å€‹å­—元就是這個矩形框的 parent 屬性,父æ¯?家長?爸爸?)
他的爸爸是一個「字元ã€(character),但沒有「字元ã€çš„內容,å»åŒ…å«äº†ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€



(4)設定錨定物件的性質:
(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分
(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†
(4)設定錨定物件的性質:

(a) 錨定物件會跟著文章一起改變置,這是「錨定物件ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº† (a) 錨定物件會跟著文章一起改變ä½ç½®ï¼Œé€™æ˜¯ã€ŒéŒ¨å®šç‰©ä»¶ã€æœ€å¤§çš„特性,常常也是我們想è¦ä½œå‡ºä¸€å€‹éŒ¨å®šç‰©ä»¶çš„原因。它之所以會動,詳細的說,是因為它的爸爸是文章中的一個字元,文章中的字元當然會跟著文章一起動,它的爸爸會動,它是在它的爸爸裡é¢çš„一個物件,所以它當然也就跟著一起動。
但是,é‡é»žä¾†äº†ï¼Œå®ƒé›–然一定會跟著它的爸爸一起動,但它在它的爸爸裡é¢çš„ä½ç½®æ˜¯å¯ä»¥æ”¹è®Šçš„,也就是我們å¯ä»¥è¨­å®šå®ƒåœ¨å®ƒçˆ¸çˆ¸è£¡é¢çš„「相å°ä½ç½®ã€ï¼Œæ¯”如說,你å¯ä»¥è¨­å®šå®ƒä¸€å®šè¦åœ¨å®ƒçš„爸爸的下é¢10公分的地方,如果它的爸爸往左移了20公分,它也會跟著往左移20公分,所以它就還是ä¿æŒè‘—它在它的爸爸下é¢çš„10公分

(b)é‚£è¦æ€Žéº¼è¨­å®šã€ŒéŒ¨å®šç‰©ä»¶ã€è·Ÿå®ƒçˆ¸çˆ¸ä¹‹é–“的「相å°è·é›¢ã€å‘¢?就這樣:
(b-1)å…ˆé¸å–這個錨定物件
(b-2)å†é¸åŠŸèƒ½è¡¨è£¡çš„「物件ã€-->「錨定物件ã€-->「é¸é …ã€
(b-3)會出ç¾ä¸€å€‹ã€ŒéŒ¨å®šç‰©ä»¶é¸é …ã€çš„å°è©±è¦–窗,這視窗裡é¢çš„一堆設定,就是在設定「錨定物件ã€è·Ÿã€Œå®ƒçš„爸爸ã€ä¹‹é–“的相å°è·é›¢
(b-4)至於æ¯ä¸€å€‹è¨­å®šæ˜¯ä»€éº¼æ„æ€?有空å†èŠäº†


(二) JavaScript 設定「錨定物件ã€çš„方法:

(a) 以上é¢çš„情形為例å­ï¼Œå¦‚果我們想è¦åœ¨ã€Œåœ–片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“置入一個圖片, 那就是在「圖片ã€å’Œã€Œé€²ä¾†ã€ä¹‹é–“的「æ’入點ã€æ’入一個圖片,我們先把這個æ’入點å«åš myInsertionPoint
如果上é¢çš„例å­è£¡ï¼ŒIndesignåªæœ‰ä¸€å€‹æ–‡ä»¶ï¼Œé€™å€‹æ–‡ä»¶åªæœ‰ä¸€é ï¼Œè€Œä¸”這é åªæœ‰é€™å€‹æ–‡å­—框,我們å¯ä»¥é€™æ¨£å¯«ï¼š
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]
myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14]myInsertionPoint = app.documents[0].pages[0].textFrames[0].insertionPoints[14];

å‡è¨­é€™å€‹åœ–片放在電腦的c:\crab.jpg
è¦åœ¨é€™å€‹æ’入點置入一個上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了è¦åœ¨é€™å€‹æ’入點置入上é¢é€™å€‹åœ–片,å¯ä»¥é€™æ¨£å¯«ï¼š

myInsertionPoint.place('c:\crab.jpg');

這樣,çµæžœå°±æœƒå¦‚上é¢çš„第二圖所示

但如果,è¦çµ¦æ’入的這張圖å–一個å字,以便之後的æ“作,å¯ä»¥é€™æ¨£å¯«

myImages = myInsertionPoint.place('c:\crab.jpg');

但,麻煩來了,myImages 並ä¸æ˜¯é€™å¼µåœ–,因為 place() 函å¼å‚³å›žçš„是一個陣列(array),這個陣列了包å«äº†ä¸€å †place()函å¼æ‰€è¨­å®šçš„物件,(這有點無èŠï¼Œå› ç‚ºæ˜Žæ˜Žåªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œä½†æ²’辦法,它就是è¦å‚³å›žé™£åˆ—),因為我們åªè¨­å®šäº†ä¸€å€‹ç‰©ä»¶ï¼Œé€™å€‹ç‰©ä»¶å°±æ˜¯é€™å‚³å›žé™£åˆ—的第一個元素,所以è¦æ‰¾åˆ°é€™å¼µåœ–,å¯ä»¥é€™æ¨£å¯«ï¼š

myImage = myImages[0];

這樣 myImage 就是我們放的這張圖了。(所以,請注æ„,我一開始用的å字是 myImages,後é¢æœ‰åŠ s,表示傳回的是一堆,之後的這個åå­—æ‰æ²’有s)

或者也å¯ä»¥ç›´æŽ¥é€™æ¨£å¯«

myImage = myInsertionPoints.place('c:\crab.jpg')[0];

這樣 myImage就直接代表了這張圖了

但我å‰é¢æ到,圖片一定包å«åœ¨ä¸€å€‹ã€ŒçŸ©å½¢æ¡†ã€è£¡é¢ï¼Œé€™å€‹çŸ©å½¢æ¡†å°±æ˜¯é€™å€‹åœ–片的parent屬形,所以è¦çµ¦é€™å€‹çŸ©å½¢æ¡†å–一個åå­—å«åšmyRectangle的話,å¯ä»¥é€™æ¨£åšï¼š

myRectangle = myImage.parent

å¦ä¸€å€‹è·³éŽmyImage,直接給myRectangleå–å字的方法是

myRectangle = myInsertionPoint.place('c:\crab.jpg')[0].parent;

很highå§ï¼Œjavascript的便利性很大


(b)å¦å¤–æ一下:
如果ä¸æ˜¯è¦æ’入圖片,而是è¦åœ¨ myInsertionPoint新建一個錨定的文字框,å¯ä»¥é€™æ¨£å¯«ï¼š

myTextFrame = myInsertionPoint.textFrames.add();






(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)(c)它的爸爸:
我們å‰é¢æ到,「錨定物件ã€ä¸€å®šæœ‰ä¸€å€‹çˆ¸çˆ¸ï¼Œé€™å€‹çˆ¸çˆ¸æ˜¯ä¸€å€‹å­—元,å‰ä¾‹ä¸­æ’入圖片後,錨定物件應該是指那個「矩形框ã€ï¼Œé€™å€‹çŸ©å½¢æ¡†çš„爸爸就是這個字元,我們å¯ä»¥é€™æ¨£æŒ‡åˆ°ä»–的爸爸

myCharacter = myRectangle.parent





(3)JavaScript 設定「錨定物件ã€çš„性質(相å°ä½ç½®)
「錨定物件ã€çš„相å°ä½ç½®çš„設定是在該錨定物件的anchoredObjectSetting屬性裡é¢

如å‰ä¾‹ï¼Œå¦‚æžœè¦è¨­å®šæ’入之後的錨定物件跟它的爸爸之間的相å°ä½ç½®ï¼Œé‚£å°±è¦è¨­å®š myRectangle.anchoredObjectSetting

anchoredObjectSetting 下é¢çš„å­å±¬æ€§å¦‚下:



anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR(a) anchoredPosition:就是「錨定物件é¸é …ã€è¦–窗中的「ä½ç½®ã€é¸é …,它有下列3種å¯èƒ½å€¼

AnchorPosition.INLINE_POSITION :å°æ‡‰åˆ°é¸é …視窗中的「行中ã€
AnchorPosition.ABOVE_LINE:å°æ‡‰åˆ°é¸é …視窗中的「行上方ã€
AnchorPosition.ANCHORED :å°æ‡‰åˆ°é¸é …視窗中的「自訂ã€



(b) anchorPoint:錨定物件的「åƒè€ƒé»žã€ï¼Œé€™å€‹åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,也就是 anchoredPosition = AnchorPosition.ANCHORED
它是「自訂ã€è¦–窗中的「錨定物件ã€ã€Œåƒè€ƒé»žã€çš„ä½ç½®è¨­å®š
它有下列9個å¯èƒ½å€¼ï¼Œåˆ†åˆ¥å°æ‡‰åˆ°ä¸€å€‹æ–¹å½¢åœ–裡的9個åƒè€ƒé»ž(é‚Šé‚Š8個,中間1個)
AnchorPoint.TOP_LEFT_ANCHOR
AnchorPoint.TOP_CENTER_ANCHOR
AnchorPoint.TOP_RIGHT_ANCHOR
AnchorPoint.LEFT_CENTER_ANCHOR
AnchorPoint.CENTER_ANCHOR
AnchorPoint.RIGHT_CENTER_ANCHOR
AnchorPoint.BOTTOM_LEFT_ANCHOR
AnchorPoint.BOTTOM_CENTER_ANCHOR
AnchorPoint.BOTTOM_RIGHT_ANCHOR


(c)horizontalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「X相å°æ–¼ï¼šã€ï¼Œæœ‰5個å¯èƒ½å€¼
AnchoredRelativeTo.COLUMN_EDGE:欄邊緣
AnchoredRelativeTo.TEXT_FRAME:文字框
AnchoredRelativeTo.PAGE_MARGINS:é é¢é‚Šç·£
AnchoredRelativeTo.PAGE_EDGE:é é¢é‚Šç•Œ
AnchoredRelativeTo.ANCHOR_LOCATION:錨點標記


(c)verticalReferencePoint:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「Y相å°æ–¼ï¼šã€ï¼Œæœ‰9個å¯èƒ½å€¼
VerticallyRelativeTo.COLUMN_EDGE
VerticallyRelativeTo.TEXT_FRAME
VerticallyRelativeTo.PAGE_MARGINS
VerticallyRelativeTo.PAGE_EDGE
VerticallyRelativeTo.LINE_BASELINE
VerticallyRelativeTo.LINE_XHEIGHT
VerticallyRelativeTo.LINE_ASCENT
VerticallyRelativeTo.CAPHEIGHT
VerticallyRelativeTo.TOP_OF_LEADING

(d)anchorXoffset:Xå移é‡ï¼Œå®ƒæ˜¯ä¸€å€‹æ•¸å€¼

(e)anchorYoffset:Yå移é‡ï¼Œå®ƒä¹Ÿæ˜¯ä¸€å€‹æ•¸å€¼


(f)pinPosition:這個也是åªåœ¨ã€Œä½ç½®ã€é¸ã€Œè‡ªè¨‚ã€æ™‚æ‰æœ‰æ„義,在「自訂ã€è¦–窗中的「ä¿æŒåœ¨é …端/底部的邊界內ã€
這的個logical值,åªæœ‰ã€Œtrueã€è·Ÿã€Œfalseã€å…©ç¨®å¯èƒ½å€¼