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ã€å…©ç¨®å¯èƒ½å€¼