界面中常常会出现很多规则排列的重复元素,所以今天来学习一下 Form 中的复制器 Replicator Patch 的相关使用。
首先,添加一个 Replicator Patch。解释一下,这个 Patch 只有一个 Copies 输入接口,指的是要复制的次数,双击之后才能进入内部(默认内部为空)。
进入内部之后,添加一个 Replicator Variables Patch 和 Color View Patch。解释一下,
Replicator Variables Patch 有三个输出端口,Index 端口输出的为从0~n 的一组序列,n 为当前设置的 Copies 数量,例如设置 Copies 为5,则 Index 输出为(0,1,2,3,4)序列。Position 端口输出的为从0~1的n 个等分序列,如(0.2,0.4,0.6,0.8,1.0)。Copies 端口输出的即为外部设置的复制个数。将 Color View 的 width 设置为40,再添加一个乘法器,设置乘数为100,做如下图的连接后,频幕上会出现5个宽为40,间隔为100的白色长条。
到这里其实很容易理解,Replicator的作用并不是『同时』在屏幕上显示数个拷贝,而是『快速顺序』显示的,即同一时间只显示一个组件,但是变化的速度够快,眼睛就会看到数个拷贝同时出现了。通过连接线上的数值快速变化,可以印证这一点。
接下来,需要在屏幕横向上等距离显示五个一定高度的矩形。先添加一个Transition Patch,将Output Min设置为0,而将 Output Max 连接到一个 Input Splitter Patch,并在后者上右键, publish Input到外部,设置名为 width。顺便再添加一个除法器,将被除数 publish 到外部,命名为 Height,并将除数设置为5,最后如下图所示:
双击空白处回到外部,将 Replicator 的 Copies 端口设置为5,并添加一个 Superview Variables Patch,将 Width 与 Height 与后面的 Patch 做如下连接。
现在还没什么效果,我们继续。再添加一个除法器,用于对屏幕横向做等分,将除数位置与 Replicator Variables 的 Copies 相连,值为5。此时会发现屏幕上出现一整条白色块,其实是五个白色方块连在了一起,我们用颜色对他们进行区分。添加一个 HSBA to Color Patch,将 Position 作为输入变量传递给 Hue端口,最后如下图连接,即可以根据五个拷贝组件的位置对其设置颜色。
最后,添加一个 Pan Interaction Patch,将 Interation 与 Color View 相连,并将 Y Pan 传递给 Y Position,这样手指即可纵向滑动屏幕上的方块了。
本教程涉及的参量比较多,复制器的概念可以在连接线上设置监视点查看值来帮助理解,如果有问题欢迎留言讨论。