這篇文章根據(jù)官方推薦的視頻,來介紹一下如何用 Form 實(shí)現(xiàn):
分別先添加兩個(gè)名為 State Output 和 State Input 的 Patch 到當(dāng)前工程中。這里說明一下,State Output 能夠輸出一個(gè)預(yù)先設(shè)定的數(shù)值并且存儲(chǔ)在 State Snput 當(dāng)中,換言之就是一個(gè)狀態(tài)的存儲(chǔ),這個(gè)狀態(tài)可能對(duì)應(yīng)的是拖動(dòng)某個(gè)控件時(shí)其位置等信息,比如接下來具體講解的這個(gè)例子。
同時(shí)再添加一個(gè)Color View Patch 和一個(gè) Math Patch,設(shè)置為加法,按下圖所示連接。簡(jiǎn)單解釋一下,從 State Output 會(huì)輸出一個(gè)數(shù)值(默認(rèn)是0),傳遞給加法器之后(設(shè)置+0.1),會(huì)進(jìn)一步傳遞給 State Input 和 Color View。到 State Input 中的數(shù)據(jù)會(huì)被暫時(shí)存儲(chǔ),通過 State 接口返回給 State Output,再次輸出進(jìn)行累加。而每一次累加的結(jié)果也會(huì)通過 X Position 接口使得 Color View 發(fā)生變化。最后的結(jié)果就是,白色方塊慢慢勻速向右側(cè)滑動(dòng)。(從連接線上的數(shù)值能看到加法以后的結(jié)果)

現(xiàn)在,我們希望白色方塊能夠跟隨手指的拖動(dòng)而移動(dòng)。添加 Pan Interaction Patch,并做如下圖連接。原本 State Output 中輸出的值是+0.1,現(xiàn)在,將 X Delta 接口傳遞給加法器進(jìn)行累加,結(jié)果就是 State Output 的數(shù)值加上 X 坐標(biāo)的變化量。Pan Interaction 能夠搜集白色方塊上手勢(shì)滑動(dòng)的變量,效果是現(xiàn)在方塊可以隨著手指向左右移動(dòng)了。

一般我們還會(huì)限定控件的移動(dòng)返回,比如不能讓這個(gè)白色方塊移動(dòng)到界面之外(因?yàn)槟菢幽憔筒荒懿倏v它回來了),所以這里添加一個(gè)Clamp Patch,名字很形象,叫做夾具。將 Clamp Patch 的最小值和最大值分別設(shè)置為0和120,并且放置在 Color View 和加法器之間,如下圖所示。這樣,白色方塊就只能在屏幕內(nèi)滑動(dòng),而不會(huì)越過邊界了。

有的時(shí)候,像這類滑動(dòng)控件的動(dòng)畫經(jīng)常會(huì)用到,因此可以將這些動(dòng)作打包并添加到自己的庫中。首先把除了 Color View 以外的所有 Patch 打包成一個(gè) Group,命名為Pan Clamp。雙擊進(jìn)入 Group 的內(nèi)部,我們要給這個(gè)通用組建設(shè)置輸入和輸出窗口。添加一個(gè) Input Splitter Patch,,在 Patch 上右鍵,選擇Publish Outpus,選擇 Output,將接口輸出:

最后給 Clamp 的最大最小值也設(shè)置入口,總體如圖連接。

現(xiàn)在,點(diǎn)擊頂部的 Document,再選擇 Add Selection to Library,填寫描述等內(nèi)容,就完成了。
