出處 : http://www.goto10.org/-/pdgop.html
by chun lee
李峻編寫
version 080206 - second version, new section added for pd 0.39
version 280205 - first version, made for pd pre 0.39
然而,“親子圖示”的功能可以讓抽象物具備自訂外觀,出現在pd的GUI(人機使用介面)物件的類型組成,如滑塊、切換開關、數字盒子等等(圖2 )。換言之,“親子圖示”功能,實際上轉變抽象物成一個圖形,在創建和隱藏的所有連接線的同時,而只顯示GUI元素。
圖示1:pd物件和抽象物傳統的外觀
圖示2:自定外觀的親子圖示。注意到輸入和輸出仍然在它們應該在的地方。
親子圖示因此提供方便的互動和控制抽象物,尤其是那些複雜或全部的功能。這個文件的目的是解釋親子圖示功能的使用程序。
針對pd0.39版本
在pd0.39版本中,親子圖示的使用比以前的版本更容易。一旦你製造了你夢想中的patch,所有你需要做正確的事,是點擊最上層的patch,並選擇'屬性(Properties),你將獲得此視窗。
現在,用滑鼠點擊親子圖示始能夠操作。兩個X和Y('size' fields)尺寸領域將決定親子圖示大小。在這種情況下,它是100x100像素平方。在X 和Y('margin' fields
)邊緣領域決定在你的patch程式中'紅色方塊的位置,。在這的範例裡,神奇的紅色盒子會出現在你的patch最左上角。
紅色盒子?!
圖示4:顯示了神奇的紅色盒子
一旦你點擊了屬性視窗中的套用(apply)或'確定(ok)按鈕。紅色包圍盒子將會出現在你的patch中。這個紅色盒子代表親子圖示的邊界。你現在需要做的是把GUI元素放到紅色盒子內部,安排他們並儲存patch。
注意到,紅色盒子的位置在你的親子圖示patch裡,這不影響最後你所期待的親子圖示。例如,下面的patch將產生相同上面的親子圖示patch。
最後看看此patch作為親子圖示...
注意到,在以前版本的pd,註解物件不會出現在親子圖示中。然而,在pd0.39版本裡,註解物件會出現在親子圖示的顯示範例中的patch,訊息仍然隱藏。
關於親子圖示的配置,它和以前一樣,所以有一份閱讀對於0.39之前的文件在這下面。
--------------------------------------------------------------------------------------------------------------
針對pd0.39之前的版本
如何做?
所有這一切都需要的是讓你的抽象物有張“臉”,當範例是使親子圖示在上層patch視窗抽象物的概念。您可以開啟它用右鍵點擊(編輯模式中)在任何空白地方,並選擇“屬性”,而且選中“親子圖示“方塊(圖3 )。現在儲存抽象物而且下一次當你呼叫的時候,它會產生介面:)
請注意,上層patch視窗是引用你的抽象物patch最上端的視窗,其中包含抽象物的一切。
圖示7:點擊“親子圖示”盒子屬性視窗。在你抽象物最上層patch視窗。注意到,這畫布視窗引用的是patch視窗的整個背景。
很簡單,但是這不是故事的全部:)
更多!
得到親子圖示抽象物的GUI元素看來正確,當創造是有點棘手。
讓我們使用下面的patch作為一個例子:
圖示9:抽象物看起來像什麼,注意範例和圖形使用介面元素的地方。也注意到所有的連接線、物件盒子、subpatch、訊息和註解都隱藏起來。
在這有一個共同的問題是在圖形使用者界面元素的位置和距離比例,因此這有時難以使用。為了理解為什麼,我們需要檢視我們範例抽象物patch的文字檔案。它在這裡:
#N canvas 519 63 362 203 10;
#X obj 11 13 vsl 15 60 0 127 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1;
#X floatatom 332 21 5 0 0 0 - - -;
#X floatatom 30 10 5 0 0 0 - - -;
#X obj 30 44 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
#X obj 167 153 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1;
#N canvas 0 0 450 300 dummy 0;
#X obj 65 90 inlet;
#X obj 109 89 inlet;
#X obj 156 87 inlet;
#X obj 200 86 inlet;
#X restore 122 104 pd dummy;
#X obj 107 1 inlet;
#X msg 99 27 messages will be hidden;
#X connect 0 0 5 0;
#X connect 1 0 5 3;
#X connect 2 0 5 2;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 6 0 5 2;
#X connect 7 0 5 2;
#X coords 0 0 1 1 200 140 1;
關注我們的問題唯一的部份是第一行“#N canvas 519 63 362 203 10;”和最後一行“#X coords 0 0 1 1 200 140 1;”。在第一行的“canvas”字串之後5個數字依序是代表patch視窗左上角X、Y座標、視窗寬度和高度和字體大小。最後一行的“ coords 0
在這發生的是,抽象物的頂端視窗尺寸是362x203,當它被安裝在顯示抽象物的畫布是200x140(預設)。這是為什麼一切似乎有點壓扁:)因此,我們需要做的正確動作是,確定抽象物的顯示畫布與抽象物的上層視窗的尺寸同樣大小。你可以做到這一點,無論是編輯文字檔案並保存它,或者右鍵點擊抽象物顯示畫布,並在其屬性視窗設置螢幕寬度/高度。請注意,如果你使用後者的方法,不要忘記打開抽象物後,設置寬度/高度並儲存!
現在,抽象物看起來像這樣:
圖示10:現在的GUI元素具有相同的距離和比例作為原本抽象物的親屬patch
。以及幾乎相同,因為只差在滾動捲軸:)
同時一個技巧,你能做的就是簡單地把畫布作為背景,包含的所有GUI內容的抽象物和調整的patch視窗符合畫布。在這之後,你就可以從抽象物的畫布屬性得到所需的尺寸。
好,這是基本的設定(或AFAIK親子圖示功能)!
但,但是
還有更多、更多!
其實只有多一點的事情:)
如果你想使親子圖示抽象物緊湊,盡量安排所有的GUI元素聚集在左上角和調整親屬視窗尺寸如同你想要的抽象物顯示畫布大小並且儲存。然後修改畫布大小顯示,因此正如我們在前面提到的,您可能還希望給一些邊緣的高度,使抽象物的名稱和創造參數可以正確顯示。
也許添加一些顏色:)關於增加顏色的patch可以在這裡找到(pd-color)。
外觀相同的抽象物,但是加上我最喜歡的顏色更加簡潔:)
它的文字檔案
#N canvas 519 63 100 100 10;
#X obj 0 19 cnv 15 100 80 empty empty empty 20 12 0 14 -1 -66577 0;
#X obj 9 31 vsl 15 60 0 127 0 0 empty empty empty 0 -8 0 8 -24198 -258699 -1 0 1;
#X obj 28 62 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1;
#X obj 31 79 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -24198 -258699 -1 0 1;
#N canvas 0 0 450 300 dummy 0;
#X obj 65 90 inlet;
#X obj 109 89 inlet;
#X obj 156 87 inlet;
#X obj 200 86 inlet;
#X restore 120 122 pd dummy;
#X obj 105 19 inlet;
#X msg 97 45 messages will be hidden;
#X obj 28 29 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -1 -24198 -1 0
256;
#X obj 28 45 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -24198 -258699
-1 0 256;
#X obj 155 73 outlet;
#X msg 2 1 scroll
#X connect 1 0 4 0;
#X connect 2 0 4 1;
#X connect 3 0 4 0;
#X connect 5 0 4 2;
#X connect 6 0 4 2;
#X connect 7 0 4 3;
#X connect 8 0 4 2;
#X coords 0 0 1 1 100 100 1;
沒有留言:
張貼留言