這篇文章根據(jù)官方推薦的視頻,來介紹一下如何用 Form 實現(xiàn):
分別先添加兩個名為 State Output 和 State Input 的 Patch 到當前工程中斑胜。這里說明一下控淡,State Output 能夠輸出一個預先設定的數(shù)值并且存儲在 State Snput 當中,換言之就是一個狀態(tài)的存儲止潘,這個狀態(tài)可能對應的是拖動某個控件時其位置等信息掺炭,比如接下來具體講解的這個例子。
同時再添加一個Color View Patch 和一個 Math Patch凭戴,設置為加法涧狮,按下圖所示連接。簡單解釋一下,從 State Output 會輸出一個數(shù)值(默認是0)勋篓,傳遞給加法器之后(設置+0.1)吧享,會進一步傳遞給 State Input 和 Color View。到 State Input 中的數(shù)據(jù)會被暫時存儲譬嚣,通過 State 接口返回給 State Output,再次輸出進行累加钞它。而每一次累加的結果也會通過 X Position 接口使得 Color View 發(fā)生變化拜银。最后的結果就是,白色方塊慢慢勻速向右側滑動遭垛。(從連接線上的數(shù)值能看到加法以后的結果)
現(xiàn)在尼桶,我們希望白色方塊能夠跟隨手指的拖動而移動。添加 Pan Interaction Patch锯仪,并做如下圖連接泵督。原本 State Output 中輸出的值是+0.1,現(xiàn)在庶喜,將 X Delta 接口傳遞給加法器進行累加小腊,結果就是 State Output 的數(shù)值加上 X 坐標的變化量。Pan Interaction 能夠搜集白色方塊上手勢滑動的變量久窟,效果是現(xiàn)在方塊可以隨著手指向左右移動了秩冈。
一般我們還會限定控件的移動返回,比如不能讓這個白色方塊移動到界面之外(因為那樣你就不能操縱它回來了)斥扛,所以這里添加一個Clamp Patch入问,名字很形象,叫做夾具稀颁。將 Clamp Patch 的最小值和最大值分別設置為0和120芬失,并且放置在 Color View 和加法器之間,如下圖所示匾灶。這樣棱烂,白色方塊就只能在屏幕內滑動,而不會越過邊界了粘昨。
有的時候垢啼,像這類滑動控件的動畫經(jīng)常會用到,因此可以將這些動作打包并添加到自己的庫中张肾。首先把除了 Color View 以外的所有 Patch 打包成一個 Group芭析,命名為Pan Clamp。雙擊進入 Group 的內部吞瞪,我們要給這個通用組建設置輸入和輸出窗口馁启。添加一個 Input Splitter Patch,,在 Patch 上右鍵惯疙,選擇Publish Outpus翠勉,選擇 Output,將接口輸出:
最后給 Clamp 的最大最小值也設置入口霉颠,總體如圖連接对碌。
現(xiàn)在,點擊頂部的 Document蒿偎,再選擇 Add Selection to Library朽们,填寫描述等內容,就完成了诉位。